Class SearchIndexAsyncClient

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

public final class SearchIndexAsyncClient extends Object
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 AI Search service.

Overview

An index is stored on your search service and populated with JSON documents that are indexed and tokenized for information retrieval. The fields collection of an index defines the structure of the search document. Fields have a name, data types, and attributes that determine how it's used. For example, searchable fields are used in full text search, and thus tokenized during indexing. An index also defines other constructs, such as scoring profiles for relevance tuning, suggesters, semantic configurations, and custom analyzers.

A synonym map is service-level object that contains user-defined synonyms. This object is maintained independently from search indexes. Once uploaded, you can point any searchable field to the synonym map (one per field).

This client provides an asynchronous API for accessing indexes. This client allows you to create, delete, update, and configure search indexes. The client also allows you to declare custom synonym maps to expand or rewrite queries.

Getting Started

Authenticating and building instances of this client are handled by SearchIndexClientBuilder. This sample shows you how to create an instance of the client:

 SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
     .credential(new AzureKeyCredential("{key}"))
     .endpoint("{endpoint}")
     .buildAsyncClient();
 

For more information on authentication and building, see the documentation for SearchIndexClientBuilder.


Examples

The following examples all use a simple Hotel data set that you can import into your own index from the Azure portal. These are just a few of the basics - please check out our Samples for much more.

Create an Index

The following sample creates an index.

 SearchIndex searchIndex = new SearchIndex("indexName", Arrays.asList(
     new SearchField("hotelId", SearchFieldDataType.STRING)
         .setKey(true)
         .setFilterable(true)
         .setSortable(true),
     new SearchField("hotelName", SearchFieldDataType.STRING)
         .setSearchable(true)
         .setFilterable(true)
         .setSortable(true),
     new SearchField("description", SearchFieldDataType.STRING)
         .setSearchable(true)
         .setAnalyzerName(LexicalAnalyzerName.EN_LUCENE),
     new SearchField("descriptionFr", SearchFieldDataType.STRING)
         .setSearchable(true)
         .setAnalyzerName(LexicalAnalyzerName.FR_LUCENE),
     new SearchField("tags", SearchFieldDataType.collection(SearchFieldDataType.STRING))
         .setSearchable(true)
         .setFilterable(true)
         .setFacetable(true),
     new SearchField("address", SearchFieldDataType.COMPLEX)
         .setFields(
             new SearchField("streetAddress", SearchFieldDataType.STRING)
                 .setSearchable(true),
             new SearchField("city", SearchFieldDataType.STRING)
                 .setFilterable(true)
                 .setSortable(true)
                 .setFacetable(true),
             new SearchField("stateProvince", SearchFieldDataType.STRING)
                 .setSearchable(true)
                 .setFilterable(true)
                 .setSortable(true)
                 .setFacetable(true),
             new SearchField("country", SearchFieldDataType.STRING)
                 .setSearchable(true)
                 .setSynonymMapNames("synonymMapName")
                 .setFilterable(true)
                 .setSortable(true)
                 .setFacetable(true),
             new SearchField("postalCode", SearchFieldDataType.STRING)
                 .setSearchable(true)
                 .setFilterable(true)
                 .setSortable(true)
                 .setFacetable(true))
 ));

 searchIndexAsyncClient.createIndex(searchIndex).block();
 
For a synchronous sample see SearchIndexClient.createIndex(SearchIndex).

List indexes

The following sample lists all indexes.

 searchIndexAsyncClient.listIndexes().subscribe(index -> System.out.println("The index name is " + index.getName()));
 
For a synchronous sample see SearchIndexClient.listIndexes().

Retrieve an Index

The following sample retrieves an index.

 SearchIndex searchIndex = searchIndexAsyncClient.getIndex("indexName").block();
 if (searchIndex != null) {
     System.out.println("The index name is " + searchIndex.getName());
 }
 
For a synchronous sample see SearchIndexClient.getIndex(String).

Update an Index

The following sample updates an index.

 SearchIndex searchIndex = searchIndexAsyncClient.getIndex("indexName").block();
 if (searchIndex != null) {
     searchIndex.setFields(new SearchField("newField", SearchFieldDataType.STRING));
     searchIndexAsyncClient.createOrUpdateIndex(searchIndex);
 }
 
For a synchronous sample see SearchIndexClient.createOrUpdateIndex(SearchIndex).

Delete an Index

The following sample deletes an index.

 String indexName = "indexName";
 searchIndexAsyncClient.deleteIndex(indexName).block();
 
For a synchronous sample see SearchIndexClient.deleteIndex(String).

Create a Synonym Map

The following sample creates a synonym map.

 SynonymMap synonymMap = new SynonymMap("synonymMapName", "hotel, motel, \"motor inn\"");
 searchIndexAsyncClient.createSynonymMap(synonymMap).block();
 
For a synchronous sample see SearchIndexClient.createSynonymMap(SynonymMap).

List Synonym Maps

The following sample lists all synonym maps.

 searchIndexAsyncClient.listSynonymMaps().subscribe(synonymMap ->
     System.out.println("The synonymMap name is " + synonymMap.getName())
 );
 
For a synchronous sample see SearchIndexClient.listSynonymMaps().

Retrieve a Synonym Map

The following sample retrieves a synonym map.

 SynonymMap synonymMap = searchIndexAsyncClient.getSynonymMap("synonymMapName").block();
 if (synonymMap != null) {
     System.out.println("The synonymMap name is " + synonymMap.getName());
 }
 
For a synchronous sample see SearchIndexClient.getSynonymMap(String).

Update a Synonym Map

The following sample updates a synonym map.

 SynonymMap synonymMap = searchIndexAsyncClient.getSynonymMap("synonymMapName").block();
 if (synonymMap != null) {
     synonymMap.setSynonyms("hotel, motel, inn");
     searchIndexAsyncClient.createOrUpdateSynonymMap(synonymMap).block();
 }
 
For a synchronous sample see SearchIndexClient.createOrUpdateSynonymMap(SynonymMap).

Delete a Synonym Map

The following sample deletes a synonym map.

 String synonymMapName = "synonymMapName";
 searchIndexAsyncClient.deleteSynonymMap(synonymMapName).block();
 
For a synchronous sample see SearchIndexClient.deleteSynonymMap(String).
See Also:
  • Method Details

    • getEndpoint

      public String getEndpoint()
      Gets the endpoint for the Azure AI Search service.
      Returns:
      the endpoint value.
    • 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
    • createIndex

      public Mono<SearchIndex> createIndex(SearchIndex index)
      Creates a new Azure AI 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<com.azure.core.http.rest.Response<SearchIndex>> createIndexWithResponse(SearchIndex index)
      Creates a new Azure AI 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.
    • getIndex

      public Mono<SearchIndex> getIndex(String indexName)
      Retrieves an index definition from the Azure AI 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.
    • getIndexWithResponse

      public Mono<com.azure.core.http.rest.Response<SearchIndex>> getIndexWithResponse(String indexName)
      Retrieves an index definition from the Azure AI 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.
    • getIndexStatistics

      public Mono<SearchIndexStatistics> 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<com.azure.core.http.rest.Response<SearchIndexStatistics>> 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.
    • listIndexes

      public com.azure.core.http.rest.PagedFlux<SearchIndex> listIndexes()
      Lists all indexes available for an Azure AI 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.
    • listIndexNames

      public com.azure.core.http.rest.PagedFlux<String> listIndexNames()
      Lists all indexes names for an Azure AI 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.
    • createOrUpdateIndex

      public Mono<SearchIndex> createOrUpdateIndex(SearchIndex index)
      Creates a new Azure AI 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<com.azure.core.http.rest.Response<SearchIndex>> createOrUpdateIndexWithResponse(SearchIndex index, boolean allowIndexDowntime, boolean onlyIfUnchanged)
      Creates a new Azure AI 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
    • deleteIndex

      public Mono<Void> deleteIndex(String indexName)
      Deletes an Azure AI 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<com.azure.core.http.rest.Response<Void>> deleteIndexWithResponse(SearchIndex index, boolean onlyIfUnchanged)
      Deletes an Azure AI 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.
    • analyzeText

      public com.azure.core.http.rest.PagedFlux<AnalyzedTokenInfo> 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.
    • createSynonymMap

      public Mono<SynonymMap> createSynonymMap(SynonymMap synonymMap)
      Creates a new Azure AI 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<com.azure.core.http.rest.Response<SynonymMap>> createSynonymMapWithResponse(SynonymMap synonymMap)
      Creates a new Azure AI 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.
    • getSynonymMap

      public Mono<SynonymMap> 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<com.azure.core.http.rest.Response<SynonymMap>> 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.
    • listSynonymMaps

      public com.azure.core.http.rest.PagedFlux<SynonymMap> listSynonymMaps()
      Lists all synonym maps available for an Azure AI 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.
    • listSynonymMapNames

      public com.azure.core.http.rest.PagedFlux<String> listSynonymMapNames()
      Lists all synonym map names for an Azure AI 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.
    • createOrUpdateSynonymMap

      public Mono<SynonymMap> createOrUpdateSynonymMap(SynonymMap synonymMap)
      Creates a new Azure AI 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<com.azure.core.http.rest.Response<SynonymMap>> createOrUpdateSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged)
      Creates a new Azure AI 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.
    • deleteSynonymMap

      public Mono<Void> deleteSynonymMap(String synonymMapName)
      Deletes an Azure AI 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<com.azure.core.http.rest.Response<Void>> deleteSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged)
      Deletes an Azure AI 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.
    • buildSearchFields

      public static List<SearchField> buildSearchFields(Class<?> model, FieldBuilderOptions options)
      Convenience method to convert a Class's Fields and Methods into SearchFields to help aid the creation of a SearchField which represents the Class.
      Parameters:
      model - The model Class that will have SearchFields generated from its structure.
      options - Configuration used to determine generation of the SearchFields.
      Returns:
      A list SearchFields which represent the model Class.
    • getServiceStatistics

      public Mono<SearchServiceStatistics> 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<com.azure.core.http.rest.Response<SearchServiceStatistics>> 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.
    • getIndexStatsSummary

      public com.azure.core.http.rest.PagedFlux<IndexStatisticsSummary> getIndexStatsSummary()
      Retrieves a summary of statistics for all indexes in the search service.
      Returns:
      response from a request to retrieve stats summary of all indexes as paginated response with PagedFlux.
      Throws:
      IllegalArgumentException - thrown if parameters fail the validation.
      com.azure.search.documents.indexes.implementation.models.ErrorResponseException - thrown if the request is rejected by server.
      RuntimeException - all other wrapped checked exceptions if the request fails to be sent.