Class QueryIndexManager

java.lang.Object
com.couchbase.client.java.manager.query.QueryIndexManager

public class QueryIndexManager extends Object
Performs management operations on query indexes.
  • Constructor Details

    • QueryIndexManager

      @Internal public QueryIndexManager(com.couchbase.client.core.util.ReactorOps reactor, AsyncQueryIndexManager async)
      Creates a new QueryIndexManager.

      This API is not intended to be called by the user directly, use Cluster.queryIndexes() instead.

      Parameters:
      async - the async index manager.
  • Method Details

    • async

      public AsyncQueryIndexManager async()
      Provides access to the AsyncQueryIndexManager.
    • reactive

      public ReactiveQueryIndexManager reactive()
      Provides access to the ReactiveQueryIndexManager.
    • createPrimaryIndex

      public void createPrimaryIndex(String bucketName)
      Creates a primary query index.

      By default, this method will create an index on the bucket. If an index needs to be created on a collection, both CreatePrimaryQueryIndexOptions.scopeName(String) and CreatePrimaryQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to create the index on.
      Throws:
      com.couchbase.client.core.error.IndexFailureException - if creating the index failed (see reason for details).
      com.couchbase.client.core.error.IndexExistsException - if an index already exists with the given name on the keyspace.
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • createPrimaryIndex

      public void createPrimaryIndex(String bucketName, CreatePrimaryQueryIndexOptions options)
      Creates a primary query index with custom options.

      By default, this method will create an index on the bucket. If an index needs to be created on a collection, both CreatePrimaryQueryIndexOptions.scopeName(String) and CreatePrimaryQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to create the index on.
      options - the custom options to apply.
      Throws:
      com.couchbase.client.core.error.IndexFailureException - if creating the index failed (see reason for details).
      com.couchbase.client.core.error.IndexExistsException - if an index already exists with the given name on the keyspace.
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • createIndex

      public void createIndex(String bucketName, String indexName, Collection<String> fields)
      Creates a named query index.

      By default, this method will create an index on the bucket. If an index needs to be created on a collection, both CreateQueryIndexOptions.scopeName(String) and CreateQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to create the index on.
      indexName - the name of the query index.
      fields - the collection of fields that are part of the index.
      Throws:
      com.couchbase.client.core.error.IndexFailureException - if creating the index failed (see reason for details).
      com.couchbase.client.core.error.IndexExistsException - if an index already exists with the given name on the keyspace.
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • createIndex

      public void createIndex(String bucketName, String indexName, Collection<String> fields, CreateQueryIndexOptions options)
      Creates a named query index with custom options.

      By default, this method will create an index on the bucket. If an index needs to be created on a collection, both CreateQueryIndexOptions.scopeName(String) and CreateQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to create the index on.
      indexName - the name of the query index.
      fields - the collection of fields that are part of the index.
      options - the custom options to apply.
      Throws:
      com.couchbase.client.core.error.IndexFailureException - if creating the index failed (see reason for details).
      com.couchbase.client.core.error.IndexExistsException - if an index already exists with the given name on the keyspace.
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • getAllIndexes

      public List<QueryIndex> getAllIndexes(String bucketName)
      Fetches all indexes from the bucket.

      By default, this method will fetch all index on the bucket. If the indexes should be loaded for a collection, both GetAllQueryIndexesOptions.scopeName(String) and GetAllQueryIndexesOptions.collectionName(String) must be set. If all indexes for a scope should be loaded, only the GetAllQueryIndexesOptions.scopeName(String) can be set.

      Parameters:
      bucketName - the name of the bucket to load the indexes from.
      Returns:
      a list of (potentially empty) indexes or failed with an error.
      Throws:
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • getAllIndexes

      public List<QueryIndex> getAllIndexes(String bucketName, GetAllQueryIndexesOptions options)
      Fetches all indexes from the bucket with custom options.

      By default, this method will fetch all index on the bucket. If the indexes should be loaded for a collection, both GetAllQueryIndexesOptions.scopeName(String) and GetAllQueryIndexesOptions.collectionName(String) must be set. If all indexes for a scope should be loaded, only the GetAllQueryIndexesOptions.scopeName(String) can be set.

      Parameters:
      bucketName - the name of the bucket to load the indexes from.
      options - the custom options to apply.
      Returns:
      a list of (potentially empty) indexes or failed with an error.
      Throws:
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • dropPrimaryIndex

      public void dropPrimaryIndex(String bucketName)
      Drops the primary index from a bucket.

      By default, this method will drop the primary index on the bucket. If the index should be dropped on a collection, both DropPrimaryQueryIndexOptions.scopeName(String) and DropPrimaryQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to drop the indexes from.
      Throws:
      com.couchbase.client.core.error.IndexNotFoundException - if the index does not exist.
      com.couchbase.client.core.error.IndexFailureException - if dropping the index failed (see reason for details).
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • dropPrimaryIndex

      public void dropPrimaryIndex(String bucketName, DropPrimaryQueryIndexOptions options)
      Drops the primary index from a bucket with custom options.

      By default, this method will drop the primary index on the bucket. If the index should be dropped on a collection, both DropPrimaryQueryIndexOptions.scopeName(String) and DropPrimaryQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to drop the indexes from.
      options - the custom options to apply.
      Throws:
      com.couchbase.client.core.error.IndexNotFoundException - if the index does not exist.
      com.couchbase.client.core.error.IndexFailureException - if dropping the index failed (see reason for details).
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • dropIndex

      public void dropIndex(String bucketName, String indexName)
      Drops a query index from a bucket.

      By default, this method will drop the index on the bucket. If the index should be dropped on a collection, both DropQueryIndexOptions.scopeName(String) and DropQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to drop the indexes from.
      indexName - the name of the index top drop.
      Throws:
      com.couchbase.client.core.error.IndexNotFoundException - if the index does not exist.
      com.couchbase.client.core.error.IndexFailureException - if dropping the index failed (see reason for details).
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • dropIndex

      public void dropIndex(String bucketName, String indexName, DropQueryIndexOptions options)
      Drops a query index from a bucket with custom options.

      By default, this method will drop the index on the bucket. If the index should be dropped on a collection, both DropQueryIndexOptions.scopeName(String) and DropQueryIndexOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket to drop the indexes from.
      indexName - the name of the index top drop.
      options - the custom options to apply.
      Throws:
      com.couchbase.client.core.error.IndexNotFoundException - if the index does not exist.
      com.couchbase.client.core.error.IndexFailureException - if dropping the index failed (see reason for details).
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • buildDeferredIndexes

      public void buildDeferredIndexes(String bucketName)
      Builds all currently deferred indexes in the bucket's default collection.

      To target a different collection, see buildDeferredIndexes(String, BuildQueryIndexOptions).

      Parameters:
      bucketName - the name of the bucket to build deferred indexes for.
      Throws:
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • buildDeferredIndexes

      public void buildDeferredIndexes(String bucketName, BuildQueryIndexOptions options)
      Builds all currently deferred indexes in a collection.

      By default, this method targets the bucket's default collection. To target a different collection, specify both BuildQueryIndexOptions.scopeName(String) and BuildQueryIndexOptions.collectionName(String).

      Parameters:
      bucketName - the name of the bucket to build deferred indexes for.
      options - the custom options to apply.
      Throws:
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • watchIndexes

      public void watchIndexes(String bucketName, Collection<String> indexNames, Duration timeout)
      Watches/Polls indexes until they are online.

      By default, this method will watch the indexes on the bucket. If the indexes should be watched on a collection, both WatchQueryIndexesOptions.scopeName(String) and WatchQueryIndexesOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket where the indexes should be watched.
      indexNames - the names of the indexes to watch.
      timeout - the maximum amount of time the indexes should be watched.
      Throws:
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.
    • watchIndexes

      public void watchIndexes(String bucketName, Collection<String> indexNames, Duration timeout, WatchQueryIndexesOptions options)
      Watches/Polls indexes until they are online with custom options.

      By default, this method will watch the indexes on the bucket. If the indexes should be watched on a collection, both WatchQueryIndexesOptions.scopeName(String) and WatchQueryIndexesOptions.collectionName(String) must be set.

      Parameters:
      bucketName - the name of the bucket where the indexes should be watched.
      indexNames - the names of the indexes to watch.
      timeout - the maximum amount of time the indexes should be watched.
      options - the custom options to apply.
      Throws:
      com.couchbase.client.core.error.CouchbaseException - if any other generic unhandled/unexpected errors.