Class SearchIndexClient

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

public final class SearchIndexClient 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 Cognitive Search service.
See Also:
  • Method Details

    • getEndpoint

      public String getEndpoint()
      Gets the endpoint for the Azure Cognitive Search service.
      Returns:
      the endpoint value.
    • getSearchClient

      public SearchClient getSearchClient(String indexName)
      Initializes a new SearchClient using the given Index name and the same configuration as the SearchServiceClient.
      Parameters:
      indexName - the name of the Index for the client
      Returns:
      a SearchClient created from the service client configuration
    • createIndex

      public SearchIndex 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);
       SearchIndex indexFromService = SEARCH_INDEX_CLIENT.createIndex(searchIndex);
       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 com.azure.core.http.rest.Response<SearchIndex> createIndexWithResponse(SearchIndex index, com.azure.core.util.Context context)
      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);
      
       Response<SearchIndex> indexFromServiceResponse =
           SEARCH_INDEX_CLIENT.createIndexWithResponse(searchIndex, new Context(KEY_1, VALUE_1));
       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
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the created Index.
    • getIndex

      public SearchIndex getIndex(String indexName)
      Retrieves an index definition from the Azure Cognitive Search.

      Code Sample

      Get search index with name "searchIndex".

       SearchIndex indexFromService =
           SEARCH_INDEX_CLIENT.getIndex("searchIndex");
       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 com.azure.core.http.rest.Response<SearchIndex> getIndexWithResponse(String indexName, com.azure.core.util.Context context)
      Retrieves an index definition from the Azure Cognitive Search.

      Code Sample

      Get search index with "searchIndex.

       Response<SearchIndex> indexFromServiceResponse =
           SEARCH_INDEX_CLIENT.getIndexWithResponse("searchIndex", new Context(KEY_1, VALUE_1));
      
       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
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the Index.
    • getIndexStatistics

      public SearchIndexStatistics getIndexStatistics(String indexName)
      Returns statistics for the given index, including a document count and storage usage.

      Code Sample

      Get search index "searchIndex" statistics.

       SearchIndexStatistics statistics = SEARCH_INDEX_CLIENT.getIndexStatistics("searchIndex");
       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 com.azure.core.http.rest.Response<SearchIndexStatistics> getIndexStatisticsWithResponse(String indexName, com.azure.core.util.Context context)
      Returns statistics for the given index, including a document count and storage usage.

      Code Sample

      Get search index "searchIndex" statistics.

       Response<SearchIndexStatistics> statistics = SEARCH_INDEX_CLIENT.getIndexStatisticsWithResponse("searchIndex",
           new Context(KEY_1, VALUE_1));
       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
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the index statistics result.
    • listIndexes

      public com.azure.core.http.rest.PagedIterable<SearchIndex> listIndexes()
      Lists all indexes available for an Azure Cognitive Search service.

      Code Sample

      List all search indexes.

       PagedIterable<SearchIndex> indexes = SEARCH_INDEX_CLIENT.listIndexes();
       for (SearchIndex index: indexes) {
           System.out.printf("The index name is %s. The ETag of index is %s.%n", index.getName(),
               index.getETag());
       }
       
      Returns:
      the list of indexes.
    • listIndexes

      public com.azure.core.http.rest.PagedIterable<SearchIndex> listIndexes(com.azure.core.util.Context context)
      Lists all indexes available for an Azure Cognitive Search service.

      Code Sample

      List all search indexes.

       PagedIterable<SearchIndex> indexes = SEARCH_INDEX_CLIENT.listIndexes(new Context(KEY_1, VALUE_1));
       System.out.println("The status code of the response is"
           + indexes.iterableByPage().iterator().next().getStatusCode());
       for (SearchIndex index: indexes) {
           System.out.printf("The index name is %s. The ETag of index is %s.%n", index.getName(), index.getETag());
       }
       
      Parameters:
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the list of indexes.
    • listIndexNames

      public com.azure.core.http.rest.PagedIterable<String> listIndexNames()
      Lists all index names for an Azure Cognitive Search service.

      Code Sample

      List all search indexes names.

       PagedIterable<String> indexes = SEARCH_INDEX_CLIENT.listIndexNames();
       for (String indexName: indexes) {
           System.out.printf("The index name is %s.%n", indexName);
       }
       
      Returns:
      the list of index names.
    • listIndexNames

      public com.azure.core.http.rest.PagedIterable<String> listIndexNames(com.azure.core.util.Context context)
      Lists all indexes names for an Azure Cognitive Search service.

      Code Sample

      List all search indexes names.

       PagedIterable<String> indexes = SEARCH_INDEX_CLIENT.listIndexNames(new Context(KEY_1, VALUE_1));
       System.out.println("The status code of the response is"
           + indexes.iterableByPage().iterator().next().getStatusCode());
       for (String indexName: indexes) {
           System.out.printf("The index name is %s.%n", indexName);
       }
       
      Parameters:
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the list of index names.
    • createOrUpdateIndex

      public SearchIndex 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".

       SearchIndex indexFromService = SEARCH_INDEX_CLIENT.getIndex("searchIndex");
       indexFromService.setSuggesters(Collections.singletonList(new SearchSuggester("sg",
           Collections.singletonList("hotelName"))));
       SearchIndex updatedIndex = SEARCH_INDEX_CLIENT.createOrUpdateIndex(indexFromService);
       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 index to create or update
      Returns:
      the index that was created or updated.
    • createOrUpdateIndexWithResponse

      public com.azure.core.http.rest.Response<SearchIndex> createOrUpdateIndexWithResponse(SearchIndex index, boolean allowIndexDowntime, boolean onlyIfUnchanged, com.azure.core.util.Context context)
      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 SearchIndex 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.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the Index that was created or updated.
    • deleteIndex

      public void 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_CLIENT.deleteIndex("searchIndex");
       
      Parameters:
      indexName - the name of the index to delete
    • deleteIndexWithResponse

      public com.azure.core.http.rest.Response<Void> deleteIndexWithResponse(SearchIndex index, boolean onlyIfUnchanged, com.azure.core.util.Context context)
      Deletes an Azure Cognitive Search index and all the documents it contains.

      Code Sample

      Delete search index with name "searchIndex".

       SearchIndex indexFromService = SEARCH_INDEX_CLIENT.getIndex("searchIndex");
       Response<Void> deleteResponse = SEARCH_INDEX_CLIENT.deleteIndexWithResponse(indexFromService, true,
           new Context(KEY_1, VALUE_1));
       System.out.printf("The status code of the response is %d.%n", deleteResponse.getStatusCode());
       
      Parameters:
      index - the Search SearchIndex to delete.
      onlyIfUnchanged - true to delete if the index is the same as the current service value. false to always delete existing value.
      context - additional context that is passed through the Http pipeline during the service call
      Returns:
      a response signalling completion.
    • analyzeText

      public com.azure.core.http.rest.PagedIterable<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".

       PagedIterable<AnalyzedTokenInfo> tokenInfos = SEARCH_INDEX_CLIENT.analyzeText("searchIndex",
           new AnalyzeTextOptions("The quick brown fox", LexicalTokenizerName.CLASSIC));
       for (AnalyzedTokenInfo tokenInfo : tokenInfos) {
           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. Requires to provide either LexicalTokenizerName or LexicalAnalyzerName.
      Returns:
      analyze result.
    • analyzeText

      public com.azure.core.http.rest.PagedIterable<AnalyzedTokenInfo> analyzeText(String indexName, AnalyzeTextOptions analyzeTextOptions, com.azure.core.util.Context context)
      Shows how an analyzer breaks text into tokens.

      Code Sample

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

       PagedIterable<AnalyzedTokenInfo> tokenInfos = SEARCH_INDEX_CLIENT.analyzeText("searchIndex",
           new AnalyzeTextOptions("The quick brown fox", LexicalTokenizerName.CLASSIC), new Context(KEY_1, VALUE_1));
       System.out.println("The status code of the response is "
           + tokenInfos.iterableByPage().iterator().next().getStatusCode());
       for (AnalyzedTokenInfo tokenInfo : tokenInfos) {
           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. Requires to provide either LexicalTokenizerName or LexicalAnalyzerName.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      analyze result.
    • createSynonymMap

      public SynonymMap 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");
       SynonymMap synonymMapFromService = SEARCH_INDEX_CLIENT.createSynonymMap(synonymMap);
       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 com.azure.core.http.rest.Response<SynonymMap> createSynonymMapWithResponse(SynonymMap synonymMap, com.azure.core.util.Context context)
      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");
       Response<SynonymMap> synonymMapFromService = SEARCH_INDEX_CLIENT.createSynonymMapWithResponse(synonymMap,
           new Context(KEY_1, VALUE_1));
       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 synonym map to create
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the created SynonymMap.
    • getSynonymMap

      public SynonymMap getSynonymMap(String synonymMapName)
      Retrieves a synonym map definition.

      Code Sample

      Get synonym map with name "synonymMap".

       SynonymMap synonymMapFromService =
           SEARCH_INDEX_CLIENT.getSynonymMap("synonymMap");
       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 com.azure.core.http.rest.Response<SynonymMap> getSynonymMapWithResponse(String synonymMapName, com.azure.core.util.Context context)
      Retrieves a synonym map definition.

      Code Sample

      Get synonym map with name "synonymMap".

       Response<SynonymMap> synonymMapFromService =
           SEARCH_INDEX_CLIENT.getSynonymMapWithResponse("synonymMap", new Context(KEY_1, VALUE_1));
       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:
      synonymMapName - name of the synonym map to retrieve
      context - a context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the SynonymMap.
    • listSynonymMaps

      public com.azure.core.http.rest.PagedIterable<SynonymMap> listSynonymMaps()
      Lists all synonym maps available for an Azure Cognitive Search service.

      Code Sample

      List all synonym maps.

       PagedIterable<SynonymMap> synonymMaps = SEARCH_INDEX_CLIENT.listSynonymMaps();
       for (SynonymMap synonymMap: synonymMaps) {
           System.out.printf("The synonymMap name is %s. The ETag of synonymMap is %s.%n", synonymMap.getName(),
               synonymMap.getETag());
       }
       
      Returns:
      the list of synonym maps.
    • listSynonymMaps

      public com.azure.core.http.rest.PagedIterable<SynonymMap> listSynonymMaps(com.azure.core.util.Context context)
      Lists all synonym maps available for an Azure Cognitive Search service.

      Code Sample

      List all synonym maps.

       PagedIterable<SynonymMap> synonymMaps = SEARCH_INDEX_CLIENT.listSynonymMaps(new Context(KEY_1, VALUE_1));
       System.out.println("The status code of the response is"
           + synonymMaps.iterableByPage().iterator().next().getStatusCode());
       for (SynonymMap index: synonymMaps) {
           System.out.printf("The index name is %s. The ETag of index is %s.%n", index.getName(), index.getETag());
       }
       
      Parameters:
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the list of synonym map names.
    • listSynonymMapNames

      public com.azure.core.http.rest.PagedIterable<String> listSynonymMapNames()
      Lists all synonym maps names for an Azure Cognitive Search service.

      Code Sample

      List all synonym map names.

       PagedIterable<String> synonymMaps = SEARCH_INDEX_CLIENT.listSynonymMapNames();
       for (String synonymMap: synonymMaps) {
           System.out.printf("The synonymMap name is %s.%n", synonymMap);
       }
       
      Returns:
      the list of synonym maps.
    • listSynonymMapNames

      public com.azure.core.http.rest.PagedIterable<String> listSynonymMapNames(com.azure.core.util.Context context)
      Lists all synonym maps names for an Azure Cognitive Search service.

      Code Sample

      List all synonym map names.

       PagedIterable<String> synonymMaps = SEARCH_INDEX_CLIENT.listIndexNames(new Context(KEY_1, VALUE_1));
       System.out.println("The status code of the response is"
           + synonymMaps.iterableByPage().iterator().next().getStatusCode());
       for (String synonymMapNames: synonymMaps) {
           System.out.printf("The synonymMap name is %s.%n", synonymMapNames);
       }
       
      Parameters:
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the list of synonym map names.
    • createOrUpdateSynonymMap

      public SynonymMap 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".

       SynonymMap synonymMap = SEARCH_INDEX_CLIENT.getSynonymMap("searchIndex");
       synonymMap.setSynonyms("United States, United States of America, USA, America\nWashington, Wash. => WA");
       SynonymMap updatedSynonymMap = SEARCH_INDEX_CLIENT.createOrUpdateSynonymMap(synonymMap);
       System.out.printf("The synonym map name is %s. The synonyms are %s.%n", updatedSynonymMap.getName(),
           updatedSynonymMap.getSynonyms());
       
      Parameters:
      synonymMap - the definition of the synonym map to create or update
      Returns:
      the synonym map that was created or updated.
    • createOrUpdateSynonymMapWithResponse

      public com.azure.core.http.rest.Response<SynonymMap> createOrUpdateSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged, com.azure.core.util.Context context)
      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".

       SynonymMap synonymMap = SEARCH_INDEX_CLIENT.getSynonymMap("searchIndex");
       synonymMap.setSynonyms("United States, United States of America, USA, America\nWashington, Wash. => WA");
       Response<SynonymMap> updatedSynonymMap =
           SEARCH_INDEX_CLIENT.createOrUpdateSynonymMapWithResponse(synonymMap, true,
               new Context(KEY_1, VALUE_1));
       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 synonym map 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.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response containing the synonym map that was created or updated.
    • deleteSynonymMap

      public void deleteSynonymMap(String synonymMapName)
      Deletes an Azure Cognitive Search synonym map.

      Code Sample

      Delete synonym map with name "synonymMap".

       SEARCH_INDEX_CLIENT.deleteSynonymMap("synonymMap");
       
      Parameters:
      synonymMapName - the name of the synonym map to delete
    • deleteSynonymMapWithResponse

      public com.azure.core.http.rest.Response<Void> deleteSynonymMapWithResponse(SynonymMap synonymMap, boolean onlyIfUnchanged, com.azure.core.util.Context context)
      Deletes an Azure Cognitive Search synonym map.

      Code Sample

      Delete synonym map with name "synonymMap".

       SynonymMap synonymMap = SEARCH_INDEX_CLIENT.getSynonymMap("synonymMap");
       Response<Void> response = SEARCH_INDEX_CLIENT.deleteSynonymMapWithResponse(synonymMap, true,
           new Context(KEY_1, VALUE_1));
       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.
      context - additional context that is passed through the Http pipeline during the service call
      Returns:
      a response signalling completion.
    • getServiceStatistics

      public SearchServiceStatistics getServiceStatistics()
      Returns service level statistics for a search service, including service counters and limits.

      Code Sample

      Get service statistics.

       SearchServiceStatistics serviceStatistics = SEARCH_INDEX_CLIENT.getServiceStatistics();
       System.out.printf("There are %s search indexes in your service.%n",
           serviceStatistics.getCounters().getIndexCounter());
       
      Returns:
      the search service statistics result.
    • getServiceStatisticsWithResponse

      public com.azure.core.http.rest.Response<SearchServiceStatistics> getServiceStatisticsWithResponse(com.azure.core.util.Context context)
      Returns service level statistics for a search service, including service counters and limits.

      Code Sample

      Get service statistics.

       Response<SearchServiceStatistics> serviceStatistics =
           SEARCH_INDEX_CLIENT.getServiceStatisticsWithResponse(new Context(KEY_1, VALUE_1));
       System.out.printf("The status code of the response is %s.%nThere are %s search indexes in your service.%n",
           serviceStatistics.getStatusCode(),
           serviceStatistics.getValue().getCounters().getIndexCounter());
       
      Parameters:
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the search service statistics result.
    • 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.
    • createAlias

      public SearchAlias createAlias(SearchAlias alias)
      Creates a new Azure Cognitive Search alias.

      Code Sample

      Create the search alias named "my-alias".

       SearchAlias searchAlias = SEARCH_INDEX_CLIENT.createAlias(new SearchAlias("my-alias",
           Collections.singletonList("index-to-alias")));
       System.out.printf("Created alias '%s' that aliases index '%s'.", searchAlias.getName(),
           searchAlias.getIndexes().get(0));
       
      Parameters:
      alias - definition of the alias to create.
      Returns:
      the created alias.
    • createAliasWithResponse

      public com.azure.core.http.rest.Response<SearchAlias> createAliasWithResponse(SearchAlias alias, com.azure.core.util.Context context)
      Creates a new Azure Cognitive Search alias.

      Code Sample

      Create the search alias named "my-alias".

       Response<SearchAlias> response = SEARCH_INDEX_CLIENT.createAliasWithResponse(new SearchAlias("my-alias",
               Collections.singletonList("index-to-alias")), new Context(KEY_1, VALUE_1));
      
       System.out.printf("Response status code %d. Created alias '%s' that aliases index '%s'.",
           response.getStatusCode(), response.getValue().getName(), response.getValue().getIndexes().get(0));
       
      Parameters:
      alias - definition of the alias to create.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the created alias.
    • createOrUpdateAlias

      public SearchAlias createOrUpdateAlias(SearchAlias alias)
      Creates or updates an Azure Cognitive Search alias.

      Code Sample

      Create then update the search alias named "my-alias".

       SearchAlias searchAlias = SEARCH_INDEX_CLIENT.createOrUpdateAlias(
           new SearchAlias("my-alias", Collections.singletonList("index-to-alias")));
      
       System.out.printf("Created alias '%s' that aliases index '%s'.", searchAlias.getName(),
           searchAlias.getIndexes().get(0));
      
       searchAlias = SEARCH_INDEX_CLIENT.createOrUpdateAlias(new SearchAlias(searchAlias.getName(),
           Collections.singletonList("new-index-to-alias")));
      
       System.out.printf("Updated alias '%s' to aliases index '%s'.", searchAlias.getName(),
           searchAlias.getIndexes().get(0));
       
      Parameters:
      alias - definition of the alias to create or update.
      Returns:
      the created or updated alias.
    • createOrUpdateAliasWithResponse

      public com.azure.core.http.rest.Response<SearchAlias> createOrUpdateAliasWithResponse(SearchAlias alias, boolean onlyIfUnchanged, com.azure.core.util.Context context)
      Creates or updates an Azure Cognitive Search alias.

      Code Sample

      Create then update the search alias named "my-alias".

       Response<SearchAlias> response = SEARCH_INDEX_CLIENT.createOrUpdateAliasWithResponse(
           new SearchAlias("my-alias", Collections.singletonList("index-to-alias")), false, new Context(KEY_1, VALUE_1));
      
       System.out.printf("Response status code %d. Created alias '%s' that aliases index '%s'.",
           response.getStatusCode(), response.getValue().getName(), response.getValue().getIndexes().get(0));
      
       response = SEARCH_INDEX_CLIENT.createOrUpdateAliasWithResponse(
           new SearchAlias(response.getValue().getName(), Collections.singletonList("new-index-to-alias"))
               .setETag(response.getValue().getETag()), true, new Context(KEY_1, VALUE_1));
      
       System.out.printf("Response status code %d. Updated alias '%s' that aliases index '%s'.",
           response.getStatusCode(), response.getValue().getName(), response.getValue().getIndexes().get(0));
       
      Parameters:
      alias - definition of the alias to create or update.
      onlyIfUnchanged - only update the alias if the eTag matches the alias on the service.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the created or updated alias.
    • getAlias

      public SearchAlias getAlias(String aliasName)
      Gets the Azure Cognitive Search alias.

      Code Sample

      Get the search alias named "my-alias".

       SearchAlias searchAlias = SEARCH_INDEX_CLIENT.getAlias("my-alias");
      
       System.out.printf("Retrieved alias '%s' that aliases index '%s'.", searchAlias.getName(),
           searchAlias.getIndexes().get(0));
       
      Parameters:
      aliasName - name of the alias to get.
      Returns:
      the retrieved alias.
    • getAliasWithResponse

      public com.azure.core.http.rest.Response<SearchAlias> getAliasWithResponse(String aliasName, com.azure.core.util.Context context)
      Gets the Azure Cognitive Search alias.

      Code Sample

      Get the search alias named "my-alias".

       Response<SearchAlias> response = SEARCH_INDEX_CLIENT.getAliasWithResponse("my-alias", new Context(KEY_1, VALUE_1));
      
       System.out.printf("Response status code %d. Retrieved alias '%s' that aliases index '%s'.",
           response.getStatusCode(), response.getValue().getName(), response.getValue().getIndexes().get(0));
       
      Parameters:
      aliasName - name of the alias to get.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      the retrieved alias.
    • deleteAlias

      public void deleteAlias(String aliasName)
      Deletes the Azure Cognitive Search alias.

      Code Sample

      Delete the search alias named "my-alias".

       SEARCH_INDEX_CLIENT.deleteAlias("my-alias");
      
       System.out.println("Deleted alias 'my-alias'.");
       
      Parameters:
      aliasName - name of the alias to delete.
    • deleteAliasWithResponse

      public com.azure.core.http.rest.Response<Void> deleteAliasWithResponse(SearchAlias alias, boolean onlyIfUnchanged, com.azure.core.util.Context context)
      Deletes the Azure Cognitive Search alias.

      Code Sample

      Delete the search alias named "my-alias".

       SearchAlias searchAlias = SEARCH_INDEX_CLIENT.getAlias("my-alias");
      
       Response<Void> response = SEARCH_INDEX_CLIENT.deleteAliasWithResponse(searchAlias, true,
           new Context(KEY_1, VALUE_1));
      
       System.out.printf("Response status code %d. Deleted alias 'my-alias'.", response.getStatusCode());
       
      Parameters:
      alias - the alias to delete.
      onlyIfUnchanged - only delete the alias if the eTag matches the alias on the service.
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a response indicating the alias has been deleted.
    • listAliases

      public com.azure.core.http.rest.PagedIterable<SearchAlias> listAliases()
      Lists all aliases in the Azure Cognitive Search service.

      Code Sample

      List aliases

       SEARCH_INDEX_CLIENT.listAliases()
           .forEach(searchAlias -> System.out.printf("Listed alias '%s' that aliases index '%s'.",
               searchAlias.getName(), searchAlias.getIndexes().get(0)));
       
      Returns:
      a list of aliases in the service.
    • listAliases

      public com.azure.core.http.rest.PagedIterable<SearchAlias> listAliases(com.azure.core.util.Context context)
      Lists all aliases in the Azure Cognitive Search service.

      Code Sample

      List aliases

       SEARCH_INDEX_CLIENT.listAliases(new Context(KEY_1, VALUE_1))
           .forEach(searchAlias -> System.out.printf("Listed alias '%s' that aliases index '%s'.",
               searchAlias.getName(), searchAlias.getIndexes().get(0)));
       
      Parameters:
      context - additional context that is passed through the HTTP pipeline during the service call
      Returns:
      a list of aliases in the service.