SearchIndexAsyncClient Class

  • java.lang.Object
    • com.azure.search.documents.indexes.SearchIndexAsyncClient

public final class SearchIndexAsyncClient

This class provides a client that contains the operations for creating, getting, listing, updating, or deleting indexes or synonym map and analyzing text in an Azure Cognitive Search service.

Method Summary

Modifier and Type Method and Description
PagedFlux<AnalyzedTokenInfo> analyzeText(String indexName, AnalyzeTextOptions analyzeTextOptions)

Shows how an analyzer breaks text into tokens.

static List<SearchField> buildSearchFields(Class<?> model, FieldBuilderOptions options)

Convenience method to convert a Class's Fields and Methods into SearchField to help aid the creation of a SearchField which represents the Class.

Mono<SearchIndex> createIndex(SearchIndex index)

Creates a new Azure Cognitive Search index.

Mono<Response<SearchIndex>> createIndexWithResponse(SearchIndex index)

Creates a new Azure Cognitive Search index.

Mono<SearchIndex> createOrUpdateIndex(SearchIndex index)

Creates a new Azure Cognitive Search index or updates an index if it already exists.

Mono<Response<SearchIndex>> createOrUpdateIndexWithResponse(SearchIndex index, boolean allowIndexDowntime, boolean onlyIfUnchanged)

Creates a new Azure Cognitive Search index or updates an index if it already exists.

Mono<SynonymMap> createOrUpdateSynonymMap(SynonymMap synonymMap)

Creates a new Azure Cognitive Search synonym map or updates a synonym map if it already exists.

Mono<Response<SynonymMap>> createOrUpdateSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged)

Creates a new Azure Cognitive Search synonym map or updates a synonym map if it already exists.

Mono<SynonymMap> createSynonymMap(SynonymMap synonymMap)

Creates a new Azure Cognitive Search synonym map.

Mono<Response<SynonymMap>> createSynonymMapWithResponse(SynonymMap synonymMap)

Creates a new Azure Cognitive Search synonym map.

Mono<Void> deleteIndex(String indexName)

Deletes an Azure Cognitive Search index and all the documents it contains.

Mono<Response<Void>> deleteIndexWithResponse(SearchIndex index, boolean onlyIfUnchanged)

Deletes an Azure Cognitive Search index and all the documents it contains.

Mono<Void> deleteSynonymMap(String synonymMapName)

Deletes an Azure Cognitive Search synonym map.

Mono<Response<Void>> deleteSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged)

Deletes an Azure Cognitive Search synonym map.

String getEndpoint()

Gets the endpoint for the Azure Cognitive Search service.

Mono<SearchIndex> getIndex(String indexName)

Retrieves an index definition from the Azure Cognitive Search.

Mono<SearchIndexStatistics> getIndexStatistics(String indexName)

Returns statistics for the given index, including a document count and storage usage.

Mono<Response<SearchIndexStatistics>> getIndexStatisticsWithResponse(String indexName)

Returns statistics for the given index, including a document count and storage usage.

Mono<Response<SearchIndex>> getIndexWithResponse(String indexName)

Retrieves an index definition from the Azure Cognitive Search.

SearchAsyncClient getSearchAsyncClient(String indexName)

Initializes a new SearchAsyncClient using the given Index name and the same configuration as the SearchServiceAsyncClient.

Mono<SearchServiceStatistics> getServiceStatistics()

Returns service level statistics for a search service, including service counters and limits.

Mono<Response<SearchServiceStatistics>> getServiceStatisticsWithResponse()

Returns service level statistics for a search service, including service counters and limits.

Mono<SynonymMap> getSynonymMap(String synonymMapName)

Retrieves a synonym map definition.

Mono<Response<SynonymMap>> getSynonymMapWithResponse(String synonymMapName)

Retrieves a synonym map definition.

PagedFlux<String> listIndexNames()

Lists all indexes names for an Azure Cognitive Search service.

PagedFlux<SearchIndex> listIndexes()

Lists all indexes available for an Azure Cognitive Search service.

PagedFlux<String> listSynonymMapNames()

Lists all synonym map names for an Azure Cognitive Search service.

PagedFlux<SynonymMap> listSynonymMaps()

Lists all synonym maps available for an Azure Cognitive Search service.

Methods inherited from java.lang.Object

Method Details

analyzeText

public PagedFlux analyzeText(String indexName, AnalyzeTextOptions analyzeTextOptions)

Shows how an analyzer breaks text into tokens.

Code Sample

Analyzer text with LexicalTokenizerName "Classic" in search index "searchIndex".

SEARCH_INDEX_ASYNC_CLIENT.analyzeText("searchIndex",
     new AnalyzeTextOptions("The quick brown fox", LexicalTokenizerName.CLASSIC))
     .subscribe(tokenInfo ->
         System.out.printf("The token emitted by the analyzer is %s.%n", tokenInfo.getToken()));

Parameters:

indexName - the name of the index for which to test an analyzer
analyzeTextOptions - the text and analyzer or analysis components to test

Returns:

a response containing analyze result.

buildSearchFields

public static List buildSearchFields(Class model, FieldBuilderOptions options)

Convenience method to convert a Class's Fields and Methods into SearchField to help aid the creation of a SearchField which represents the Class.

Parameters:

model - The model Class that will have SearchField generated from its structure.
options - Configuration used to determine generation of the SearchField.

Returns:

A list SearchField which represent the model Class.

createIndex

public Mono createIndex(SearchIndex index)

Creates a new Azure Cognitive Search index.

Code Sample

Create search index named "searchIndex".

List<SearchField> searchFields = Arrays.asList(
     new SearchField("hotelId", SearchFieldDataType.STRING).setKey(true),
     new SearchField("hotelName", SearchFieldDataType.STRING).setSearchable(true)
 );
 SearchIndex searchIndex = new SearchIndex("searchIndex", searchFields);
 SEARCH_INDEX_ASYNC_CLIENT.createIndex(searchIndex)
     .subscribe(indexFromService ->
         System.out.printf("The index name is %s. The ETag of index is %s.%n", indexFromService.getName(),
         indexFromService.getETag()));

Parameters:

index - definition of the index to create.

Returns:

the created Index.

createIndexWithResponse

public Mono<>> createIndexWithResponse(SearchIndex index)

Creates a new Azure Cognitive Search index.

Code Sample

Create search index named "searchIndex".

List<SearchField> searchFields = Arrays.asList(
     new SearchField("hotelId", SearchFieldDataType.STRING).setKey(true),
     new SearchField("hotelName", SearchFieldDataType.STRING).setSearchable(true)
 );
 SearchIndex searchIndex = new SearchIndex("searchIndex", searchFields);

 SEARCH_INDEX_ASYNC_CLIENT.createIndexWithResponse(searchIndex)
     .subscribe(indexFromServiceResponse ->
         System.out.printf("The status code of the response is %s. The index name is %s.%n",
         indexFromServiceResponse.getStatusCode(), indexFromServiceResponse.getValue().getName()));

Parameters:

index - definition of the index to create

Returns:

a response containing the created Index.

createOrUpdateIndex

public Mono createOrUpdateIndex(SearchIndex index)

Creates a new Azure Cognitive Search index or updates an index if it already exists.

Code Sample

Create or update search index named "searchIndex".

SEARCH_INDEX_ASYNC_CLIENT.getIndex("searchIndex")
     .doOnNext(indexFromService -> indexFromService.setSuggesters(Collections.singletonList(
         new SearchSuggester("sg", Collections.singletonList("hotelName")))))
     .flatMap(SEARCH_INDEX_ASYNC_CLIENT::createOrUpdateIndex)
     .subscribe(updatedIndex ->
         System.out.printf("The index name is %s. The suggester name of index is %s.%n",
             updatedIndex.getName(), updatedIndex.getSuggesters().get(0).getName()));

Parameters:

index - the definition of the SearchIndex to create or update.

Returns:

the index that was created or updated.

createOrUpdateIndexWithResponse

public Mono<>> createOrUpdateIndexWithResponse(SearchIndex index, boolean allowIndexDowntime, boolean onlyIfUnchanged)

Creates a new Azure Cognitive Search index or updates an index if it already exists.

Code Sample

Create or update search index named "searchIndex".

SearchIndex indexFromService = SEARCH_INDEX_CLIENT.getIndex("searchIndex");
 indexFromService.setSuggesters(Collections.singletonList(new SearchSuggester("sg",
     Collections.singletonList("hotelName"))));
 Response<SearchIndex> updatedIndexResponse = SEARCH_INDEX_CLIENT.createOrUpdateIndexWithResponse(indexFromService, true,
     false, new Context(KEY_1, VALUE_1));
 System.out.printf("The status code of the normal response is %s.%n"
         + "The index name is %s. The ETag of index is %s.%n", updatedIndexResponse.getStatusCode(),
     updatedIndexResponse.getValue().getName(), updatedIndexResponse.getValue().getETag());

Parameters:

index - the definition of the index to create or update
allowIndexDowntime - allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes
onlyIfUnchanged - true to update if the index is the same as the current service value. false to always update existing value.

Returns:

a response containing the index that was created or updated

createOrUpdateSynonymMap

public Mono createOrUpdateSynonymMap(SynonymMap synonymMap)

Creates a new Azure Cognitive Search synonym map or updates a synonym map if it already exists.

Code Sample

Create or update synonym map named "synonymMap".

SEARCH_INDEX_ASYNC_CLIENT.getSynonymMap("searchIndex")
     .doOnNext(synonymMap -> synonymMap
         .setSynonyms("United States, United States of America, USA, America\nWashington, Wash. => WA"))
     .flatMap(SEARCH_INDEX_ASYNC_CLIENT::createOrUpdateSynonymMap)
     .subscribe(updatedSynonymMap ->
         System.out.printf("The synonym map name is %s. The synonyms are %s.%n", updatedSynonymMap.getName(),
         updatedSynonymMap.getSynonyms()));

Parameters:

synonymMap - the definition of the SynonymMap to create or update

Returns:

the synonym map that was created or updated.

createOrUpdateSynonymMapWithResponse

public Mono<>> createOrUpdateSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged)

Creates a new Azure Cognitive Search synonym map or updates a synonym map if it already exists.

Code Sample

Create or update synonym map named "synonymMap".

SEARCH_INDEX_ASYNC_CLIENT.getSynonymMap("searchIndex")
     .flatMap(synonymMap -> {
         synonymMap.setSynonyms(
             "United States, United States of America, USA, America\nWashington, Wash. => WA");
         return SEARCH_INDEX_ASYNC_CLIENT.createOrUpdateSynonymMapWithResponse(synonymMap, true);
     })
     .subscribe(updatedSynonymMap ->
         System.out.printf("The status code of the normal response is %s.%n"
             + "The synonym map name is %s. The synonyms are %s.%n", updatedSynonymMap.getStatusCode(),
         updatedSynonymMap.getValue().getName(), updatedSynonymMap.getValue().getSynonyms()));

Parameters:

synonymMap - the definition of the SynonymMap to create or update
onlyIfUnchanged - true to update if the synonymMap is the same as the current service value. false to always update existing value.

Returns:

a response containing the synonym map that was created or updated.

createSynonymMap

public Mono createSynonymMap(SynonymMap synonymMap)

Creates a new Azure Cognitive Search synonym map.

Code Sample

Create synonym map named "synonymMap".

SynonymMap synonymMap = new SynonymMap("synonymMap",
     "United States, United States of America, USA\nWashington, Wash. => WA");
 SEARCH_INDEX_ASYNC_CLIENT.createSynonymMap(synonymMap)
     .subscribe(synonymMapFromService ->
         System.out.printf("The synonym map name is %s. The ETag of synonym map is %s.%n",
         synonymMapFromService.getName(), synonymMapFromService.getETag()));

Parameters:

synonymMap - the definition of the synonym map to create

Returns:

the created SynonymMap.

createSynonymMapWithResponse

public Mono<>> createSynonymMapWithResponse(SynonymMap synonymMap)

Creates a new Azure Cognitive Search synonym map.

Code Sample

Create synonym map named "synonymMap".

SynonymMap synonymMap = new SynonymMap("synonymMap",
     "United States, United States of America, USA\nWashington, Wash. => WA");
 SEARCH_INDEX_ASYNC_CLIENT.createSynonymMapWithResponse(synonymMap)
     .subscribe(synonymMapFromService ->
         System.out.printf("The status code of the response is %d.%n"
             + "The synonym map name is %s. The ETag of synonym map is %s.%n",
             synonymMapFromService.getStatusCode(),
         synonymMapFromService.getValue().getName(), synonymMapFromService.getValue().getETag()));

Parameters:

synonymMap - the definition of the SynonymMap to create

Returns:

a response containing the created SynonymMap.

deleteIndex

public Mono deleteIndex(String indexName)

Deletes an Azure Cognitive Search index and all the documents it contains.

Code Sample

Delete search index with name "searchIndex".

SEARCH_INDEX_ASYNC_CLIENT.deleteIndex("searchIndex")
     .subscribe();

Parameters:

indexName - the name of the index to delete

Returns:

a response signalling completion.

deleteIndexWithResponse

public Mono<>> deleteIndexWithResponse(SearchIndex index, boolean onlyIfUnchanged)

Deletes an Azure Cognitive Search index and all the documents it contains.

Code Sample

Delete search index with name "searchIndex".

SEARCH_INDEX_ASYNC_CLIENT.getIndex("searchIndex")
     .flatMap(indexFromService -> SEARCH_INDEX_ASYNC_CLIENT.deleteIndexWithResponse(indexFromService, true))
     .subscribe(deleteResponse ->
         System.out.printf("The status code of the response is %d.%n", deleteResponse.getStatusCode()));

Parameters:

index - the SearchIndex to delete.
onlyIfUnchanged - true to delete if the index is the same as the current service value. false to always delete existing value.

Returns:

a response signalling completion.

deleteSynonymMap

public Mono deleteSynonymMap(String synonymMapName)

Deletes an Azure Cognitive Search synonym map.

Code Sample

Delete synonym map with name "synonymMap".

SEARCH_INDEX_ASYNC_CLIENT.deleteSynonymMap("synonymMap")
     .subscribe();

Parameters:

synonymMapName - the name of the SynonymMap to delete

Returns:

a response signalling completion.

deleteSynonymMapWithResponse

public Mono<>> deleteSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged)

Deletes an Azure Cognitive Search synonym map.

Code Sample

Delete synonym map with name "synonymMap".

SEARCH_INDEX_ASYNC_CLIENT.getSynonymMap("synonymMap")
     .flatMap(synonymMap -> SEARCH_INDEX_ASYNC_CLIENT.deleteSynonymMapWithResponse(synonymMap, true))
     .subscribe(response -> System.out.println("The status code of the response is" + response.getStatusCode()));

Parameters:

synonymMap - the SynonymMap to delete.
onlyIfUnchanged - true to delete if the synonymMap is the same as the current service value. false to always delete existing value.

Returns:

a response signalling completion.

getEndpoint

public String getEndpoint()

Gets the endpoint for the Azure Cognitive Search service.

Returns:

the endpoint value.

getIndex

public Mono getIndex(String indexName)

Retrieves an index definition from the Azure Cognitive Search.

Code Sample

Get search index with name "searchIndex".

SEARCH_INDEX_ASYNC_CLIENT.getIndex("searchIndex")
     .subscribe(indexFromService ->
         System.out.printf("The index name is %s. The ETag of index is %s.%n", indexFromService.getName(),
             indexFromService.getETag()));

Parameters:

indexName - The name of the index to retrieve

Returns:

the Index.

getIndexStatistics

public Mono getIndexStatistics(String indexName)

Returns statistics for the given index, including a document count and storage usage.

Code Sample

Get search index "searchIndex" statistics.

SEARCH_INDEX_ASYNC_CLIENT.getIndexStatistics("searchIndex")
     .subscribe(statistics ->
         System.out.printf("There are %d documents and storage size of %d available in 'searchIndex'.%n",
         statistics.getDocumentCount(), statistics.getStorageSize()));

Parameters:

indexName - the name of the index for which to retrieve statistics

Returns:

the index statistics result.

getIndexStatisticsWithResponse

public Mono<>> getIndexStatisticsWithResponse(String indexName)

Returns statistics for the given index, including a document count and storage usage.

Code Sample

Get search index "searchIndex" statistics.

SEARCH_INDEX_ASYNC_CLIENT.getIndexStatisticsWithResponse("searchIndex")
     .subscribe(statistics -> System.out.printf("The status code of the response is %s.%n"
             + "There are %d documents and storage size of %d available in 'searchIndex'.%n",
         statistics.getStatusCode(), statistics.getValue().getDocumentCount(),
         statistics.getValue().getStorageSize()));

Parameters:

indexName - the name of the index for which to retrieve statistics

Returns:

a response containing the index statistics result.

getIndexWithResponse

public Mono<>> getIndexWithResponse(String indexName)

Retrieves an index definition from the Azure Cognitive Search.

Code Sample

Get search index with "searchIndex.

SEARCH_INDEX_ASYNC_CLIENT.getIndexWithResponse("searchIndex")
     .subscribe(indexFromServiceResponse ->
         System.out.printf("The status code of the response is %s. The index name is %s.%n",
             indexFromServiceResponse.getStatusCode(), indexFromServiceResponse.getValue().getName()));

Parameters:

indexName - the name of the index to retrieve

Returns:

a response containing the Index.

getSearchAsyncClient

public SearchAsyncClient getSearchAsyncClient(String indexName)

Initializes a new SearchAsyncClient using the given Index name and the same configuration as the SearchServiceAsyncClient.

Parameters:

indexName - the name of the Index for the client

Returns:

a SearchAsyncClient created from the service client configuration

getServiceStatistics

public Mono getServiceStatistics()

Returns service level statistics for a search service, including service counters and limits.

Contains the tracking ID sent with the request to help with debugging

Code Sample

Get service statistics.

SEARCH_INDEX_ASYNC_CLIENT.getServiceStatistics()
     .subscribe(serviceStatistics -> System.out.printf("There are %s search indexes in your service.%n",
         serviceStatistics.getCounters().getIndexCounter()));

Returns:

the search service statistics result.

getServiceStatisticsWithResponse

public Mono<>> getServiceStatisticsWithResponse()

Returns service level statistics for a search service, including service counters and limits.

Code Sample

Get service statistics.

SEARCH_INDEX_ASYNC_CLIENT.getServiceStatisticsWithResponse()
     .subscribe(serviceStatistics ->
         System.out.printf("The status code of the response is %s.%n"
                 + "There are %s search indexes in your service.%n",
         serviceStatistics.getStatusCode(),
         serviceStatistics.getValue().getCounters().getIndexCounter()));

Returns:

the search service statistics result.

getSynonymMap

public Mono getSynonymMap(String synonymMapName)

Retrieves a synonym map definition.

Code Sample

Get synonym map with name "synonymMap".

SEARCH_INDEX_ASYNC_CLIENT.getSynonymMap("synonymMap")
     .subscribe(synonymMapFromService ->
         System.out.printf("The synonym map is %s. The ETag of synonym map is %s.%n",
             synonymMapFromService.getName(), synonymMapFromService.getETag()));

Parameters:

synonymMapName - name of the synonym map to retrieve

Returns:

the SynonymMap definition

getSynonymMapWithResponse

public Mono<>> getSynonymMapWithResponse(String synonymMapName)

Retrieves a synonym map definition.

Code Sample

Get synonym map with name "synonymMap".

SEARCH_INDEX_ASYNC_CLIENT.getSynonymMap("synonymMap")
     .subscribe(synonymMapFromService ->
         System.out.printf("The synonym map is %s. The ETag of synonym map is %s.%n",
             synonymMapFromService.getName(), synonymMapFromService.getETag()));

Parameters:

synonymMapName - name of the synonym map to retrieve

Returns:

a response containing the SynonymMap.

listIndexNames

public PagedFlux listIndexNames()

Lists all indexes names for an Azure Cognitive Search service.

Code Sample

List all search indexes names.

SEARCH_INDEX_ASYNC_CLIENT.listIndexNames()
     .subscribe(indexName -> System.out.printf("The index name is %s.%n", indexName));

Returns:

a reactive response emitting the list of index names.

listIndexes

public PagedFlux listIndexes()

Lists all indexes available for an Azure Cognitive Search service.

Code Sample

List all search indexes.

SEARCH_INDEX_ASYNC_CLIENT.listIndexes()
     .subscribe(index ->
         System.out.printf("The index name is %s. The ETag of index is %s.%n", index.getName(),
             index.getETag()));

Returns:

a reactive response emitting the list of indexes.

listSynonymMapNames

public PagedFlux listSynonymMapNames()

Lists all synonym map names for an Azure Cognitive Search service.

Code Sample

List all synonym map names.

SEARCH_INDEX_ASYNC_CLIENT.listSynonymMapNames()
     .subscribe(synonymMap -> System.out.printf("The synonymMap name is %s.%n", synonymMap));

Returns:

a reactive response emitting the list of synonym map names.

listSynonymMaps

public PagedFlux listSynonymMaps()

Lists all synonym maps available for an Azure Cognitive Search service.

Code Sample

List all synonym maps.

SEARCH_INDEX_ASYNC_CLIENT.listSynonymMaps()
     .subscribe(synonymMap -> System.out.printf("The synonymMap name is %s. The ETag of synonymMap is %s.%n",
         synonymMap.getName(), synonymMap.getETag()));

Returns:

a reactive response emitting the list of synonym maps.

Applies to