Class CollectionAdminRequest<T extends CollectionAdminResponse>

java.lang.Object
org.apache.solr.client.solrj.SolrRequest<T>
org.apache.solr.client.solrj.request.CollectionAdminRequest<T>
All Implemented Interfaces:
Serializable, MapSerializable, MapWriter, NavigableObject, org.noggit.JSONWriter.Writable
Direct Known Subclasses:
CollectionAdminRequest.AsyncCollectionAdminRequest, CollectionAdminRequest.ClusterProp, CollectionAdminRequest.ClusterStatus, CollectionAdminRequest.DeleteBackup, CollectionAdminRequest.DeleteStatus, CollectionAdminRequest.List, CollectionAdminRequest.ListAliases, CollectionAdminRequest.ListBackup, CollectionAdminRequest.RequestApiDistributedProcessing, CollectionAdminRequest.RequestStatus, CollectionAdminRequest.ShardSpecificAdminRequest

public abstract class CollectionAdminRequest<T extends CollectionAdminResponse> extends SolrRequest<T> implements MapWriter
This class is experimental and subject to change.
Since:
solr 4.5
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • getParams

      public SolrParams getParams()
      Description copied from class: SolrRequest
      The parameters for this request; never null. The runtime type may be mutable but modifications may not affect this SolrRequest instance, as it may return a new instance here every time. If the subclass specifies the response type as ModifiableSolrParams, then one can expect it to change this request. If the subclass has a setter then one can expect this method to return the value set.
      Specified by:
      getParams in class SolrRequest<T extends CollectionAdminResponse>
    • addProperties

      protected void addProperties(ModifiableSolrParams params, Properties props)
    • writeMap

      public void writeMap(MapWriter.EntryWriter ew) throws IOException
      Description copied from interface: MapWriter
      Writes this object's entries out to ew.
      Specified by:
      writeMap in interface MapWriter
      Throws:
      IOException
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • requiresCollection

      public boolean requiresCollection()
      Description copied from class: SolrRequest
      Determines whether this request should use or ignore any specified collections (esp. SolrClient.defaultCollection)

      Many Solr requests target a particular core or collection. But not all of them - many Solr APIs (e.g. security or other admin APIs) are agnostic of collections entirely. This method gives these requests a way to opt out of using SolrClient.defaultCollection or other specified collections.

      Overrides:
      requiresCollection in class SolrRequest<T extends CollectionAdminResponse>
    • propagateBasicAuthCreds

      protected <T extends CollectionAdminRequest<? extends CollectionAdminResponse>> T propagateBasicAuthCreds(T req)
      Take the request specific basic auth creds on this admin request and propagate them to a related request if does not already have credentials set, such as a CollectionAdminRequest.RequestStatus when doing async requests.
    • createCollection

      public static CollectionAdminRequest.Create createCollection(String collection, String config, Integer numShards, Integer numNrtReplicas, Integer numTlogReplicas, Integer numPullReplicas)
      Returns a SolrRequest for creating a collection
      Parameters:
      collection - the collection name
      config - the collection config
      numShards - the number of shards in the collection
      numNrtReplicas - the number of Replica.Type.NRT replicas
      numTlogReplicas - the number of Replica.Type.TLOG replicas
      numPullReplicas - the number of Replica.Type.PULL replicas
    • createCollection

      public static CollectionAdminRequest.Create createCollection(String collection, String config, int numShards, int numReplicas)
      Returns a SolrRequest for creating a collection
      Parameters:
      collection - the collection name
      config - the collection config
      numShards - the number of shards in the collection
      numReplicas - the replication factor of the collection (same as numNrtReplicas)
    • createCollection

      public static CollectionAdminRequest.Create createCollection(String collection, int numShards, int numReplicas)
      Returns a SolrRequest for creating a collection using a default configSet

      This requires that there is either a single configset configured in the cluster, or that there is a configset with the same name as the collection

      Parameters:
      collection - the collection name
      numShards - the number of shards in the collection
      numReplicas - the replication factor of the collection
    • createCollectionWithImplicitRouter

      public static CollectionAdminRequest.Create createCollectionWithImplicitRouter(String collection, String config, String shards, int numReplicas)
      Returns a SolrRequest for creating a collection with the implicit router
      Parameters:
      collection - the collection name
      config - the collection config
      shards - a shard definition string
      numReplicas - the replication factor of the collection
    • createCollectionWithImplicitRouter

      public static CollectionAdminRequest.Create createCollectionWithImplicitRouter(String collection, String config, String shards, int numNrtReplicas, int numTlogReplicas, int numPullReplicas)
      Returns a SolrRequest for creating a collection with the implicit router and specific types of replicas
      Parameters:
      collection - the collection name
      config - the collection config
      shards - a shard definition string
      numNrtReplicas - the number of replicas of type Replica.Type.NRT
      numTlogReplicas - the number of replicas of type Replica.Type.TLOG
      numPullReplicas - the number of replicas of type Replica.Type.PULL
    • modifyCollection

      public static CollectionAdminRequest.Modify modifyCollection(String collection, Map<String,Object> properties)
      Returns a SolrRequest for modifying a collection with the given properties
      Parameters:
      collection - the collection name
      properties - a map of key and values with which the collection is to be modified
    • reloadCollection

      public static CollectionAdminRequest.Reload reloadCollection(String collection)
      Returns a SolrRequest to reload a collection
    • renameCollection

      public static CollectionAdminRequest.Rename renameCollection(String collection, String target)
    • deleteNode

      public static CollectionAdminRequest.DeleteNode deleteNode(String node)
      Returns a SolrRequest to delete a node.
    • moveReplica

      public static CollectionAdminRequest.MoveReplica moveReplica(String collection, String replica, String targetNode)
    • rebalanceLeaders

      public static CollectionAdminRequest.RebalanceLeaders rebalanceLeaders(String collection)
    • reindexCollection

      public static CollectionAdminRequest.ReindexCollection reindexCollection(String collection)
      Returns a SolrRequest to reindex a collection
    • collectionStatus

      public static CollectionAdminRequest.ColStatus collectionStatus(String collection)
      Return a SolrRequest for low-level detailed status of the specified collection.
      Parameters:
      collection - the collection to get the status of.
    • collectionStatuses

      public static CollectionAdminRequest.ColStatus collectionStatuses()
      Return a SolrRequest for low-level detailed status of all collections on the cluster.
    • deleteCollection

      public static CollectionAdminRequest.Delete deleteCollection(String collection)
      Returns a SolrRequest to delete a collection
    • backupCollection

      public static CollectionAdminRequest.Backup backupCollection(String collection, String backupName)
    • restoreCollection

      public static CollectionAdminRequest.Restore restoreCollection(String collection, String backupName)
    • installDataToShard

      public static CollectionAdminRequest.InstallShard installDataToShard(String collection, String shard, String location, String backupRepository)
      Install index data to a specific shard of a specific collection
      Parameters:
      collection - the collection to install data to
      shard - the specific shard within to install data to
      location - a URI-string pointing to location of the index data within a particular backup repository
      backupRepository - the backup repository to lookup and install the index data from
    • installDataToShard

      public static CollectionAdminRequest.InstallShard installDataToShard(String collection, String shard, String location)
      Install index data to a specific shard of a specific collection

      Will use Solr's "default" backup repository for locating and accessing the index data.

      Parameters:
      collection - the collection to install data to
      shard - the specific shard within to install data to
      location - a URI-string pointing to location of the index data within a particular backup repository
    • createShard

      public static CollectionAdminRequest.CreateShard createShard(String collection, String shard)
      Returns a SolrRequest to create a new shard in a collection
    • mockCollTask

      public static CollectionAdminRequest.MockCollTask mockCollTask(String collection)
      Returns a SolrRequest to run a mock task. For tests only.
    • splitShard

      public static CollectionAdminRequest.SplitShard splitShard(String collection)
      Returns a SolrRequest to split a shard in a collection
    • deleteShard

      public static CollectionAdminRequest.DeleteShard deleteShard(String collection, String shard)
      Returns a SolrRequest to delete a shard from a collection
    • forceLeaderElection

      public static CollectionAdminRequest.ForceLeader forceLeaderElection(String collection, String shard)
      Returns a SolrRequest to force a leader election for a shard in a collection

      WARNING: This may cause data loss if the new leader does not contain updates acknowledged by the old leader. Use only if leadership elections are entirely broken.

    • requestStatus

      public static CollectionAdminRequest.RequestStatus requestStatus(String requestId)
      Returns a SolrRequest for checking the status of an asynchronous request
      See Also:
    • waitForAsyncRequest

      public static void waitForAsyncRequest(String requestId, SolrClient client, long timeout) throws SolrServerException, InterruptedException, IOException
      Throws:
      SolrServerException
      InterruptedException
      IOException
    • deleteAsyncId

      public static CollectionAdminRequest.DeleteStatus deleteAsyncId(String requestId)
      Returns a SolrRequest to delete an asynchronous request status
    • deleteAllAsyncIds

      public static CollectionAdminRequest.DeleteStatus deleteAllAsyncIds()
      Returns a SolrRequest to delete a all asynchronous request statuses
    • setAliasProperty

      public static CollectionAdminRequest.SetAliasProperty setAliasProperty(String aliasName)
      Returns a SolrRequest to add or remove properties from an alias
      Parameters:
      aliasName - the alias to modify
    • createAlias

      public static CollectionAdminRequest.CreateAlias createAlias(String aliasName, String aliasedCollections)
      Returns a SolrRequest to create a new alias
      Parameters:
      aliasName - the alias name
      aliasedCollections - the collections to alias
    • createTimeRoutedAlias

      public static CollectionAdminRequest.CreateTimeRoutedAlias createTimeRoutedAlias(String aliasName, String start, String interval, String routerField, CollectionAdminRequest.Create createCollTemplate)
      Returns a SolrRequest to create a time routed alias. For time based routing, the start should be a standard Solr timestamp string (possibly with "date math").
      Parameters:
      aliasName - the name of the alias to create.
      start - the start of the routing. A standard Solr date: ISO-8601 or NOW with date math.
      interval - date math representing the time duration of each collection (e.g. +1DAY)
      routerField - the document field to contain the timestamp to route on
      createCollTemplate - Holds options to create a collection. The "name" is ignored.
    • createCategoryRoutedAlias

      public static CollectionAdminRequest.CreateCategoryRoutedAlias createCategoryRoutedAlias(String aliasName, String routerField, int maxCardinality, CollectionAdminRequest.Create createCollTemplate)
      Returns a SolrRequest to create a category routed alias.
      Parameters:
      aliasName - the name of the alias to create.
      routerField - the document field to contain the timestamp to route on
      maxCardinality - the maximum number of collections under this CRA
      createCollTemplate - Holds options to create a collection. The "name" is ignored.
    • createDimensionalRoutedAlias

      public static CollectionAdminRequest.DimensionalRoutedAlias createDimensionalRoutedAlias(String aliasName, CollectionAdminRequest.Create createCollTemplate, CollectionAdminRequest.RoutedAliasAdminRequest... dims)
      Create a Dimensional Routed alias from two or more routed alias types.
      Parameters:
      aliasName - The name of the alias
      createCollTemplate - a create command that will be used for all collections created
      dims - Routed Alias requests. Note that the aliasName and collection templates inside dimensions will be ignored and may be safely set to null
      Returns:
      An object representing a basic DimensionalRoutedAlias creation request.
    • deleteAlias

      public static CollectionAdminRequest.DeleteAlias deleteAlias(String aliasName)
      Returns a SolrRequest to delete an alias
    • addReplicaToShard

      public static CollectionAdminRequest.AddReplica addReplicaToShard(String collection, String shard)
      Returns a SolrRequest to add a replica of type Replica.Type.NRT to a shard in a collection
    • addReplicaToShard

      public static CollectionAdminRequest.AddReplica addReplicaToShard(String collection, String shard, Replica.Type replicaType)
      Returns a SolrRequest to add a replica of the specified type to a shard in a collection. If the replica type is null, the server default will be used.
    • addReplicaByRouteKey

      public static CollectionAdminRequest.AddReplica addReplicaByRouteKey(String collection, String routeKey)
      Returns a SolrRequest to add a replica to a collection using a route key
    • deleteReplica

      public static CollectionAdminRequest.DeleteReplica deleteReplica(String collection, String shard, String replica)
      Returns a SolrRequest to delete a replica from a shard in a collection
    • deleteReplica

      public static CollectionAdminRequest.DeleteReplica deleteReplica(String collection, String shard, int count)
    • deleteReplicasFromShard

      public static CollectionAdminRequest.DeleteReplica deleteReplicasFromShard(String collection, String shard, int count)
      Returns a SolrRequest to remove a number of replicas from a specific shard
    • deleteReplicasFromAllShards

      public static CollectionAdminRequest.DeleteReplica deleteReplicasFromAllShards(String collection, int count)
    • setClusterProperty

      public static CollectionAdminRequest.ClusterProp setClusterProperty(String propertyName, String propertyValue)
      Returns a SolrRequest to set (or unset) a cluster property
    • setCollectionProperty

      public static CollectionAdminRequest.CollectionProp setCollectionProperty(String collection, String propertyName, String propertyValue)
    • migrateData

      public static CollectionAdminRequest.Migrate migrateData(String collection, String targetCollection, String splitKey)
      Returns a SolrRequest to migrate data matching a split key to another collection
    • addRole

      public static CollectionAdminRequest.AddRole addRole(String node, String role)
      Returns a SolrRequest to add a role to a node
    • removeRole

      public static CollectionAdminRequest.RemoveRole removeRole(String node, String role)
      Returns a SolrRequest to remove a role from a node
    • getOverseerStatus

      public static CollectionAdminRequest.OverseerStatus getOverseerStatus()
      Return a SolrRequest to get the Overseer status
    • getClusterStatus

      public static CollectionAdminRequest.ClusterStatus getClusterStatus()
      Return a SolrRequest to get the Cluster status
    • listCollections

      public static List<String> listCollections(SolrClient client) throws IOException, SolrServerException
      Returns a SolrRequest to get a list of collections in the cluster
      Throws:
      IOException
      SolrServerException
    • deleteBackupById

      public static CollectionAdminRequest.DeleteBackup deleteBackupById(String backupName, int backupId)
      Configure a SolrRequest object to delete a single backup-point by it's Backup ID.

      The created request object is only valid on backup locations that use the new "incremental" backup file-format introduced in Solr 8.9. It should not be used on locations holding "non-incremental" backups (those created prior to 8.9, or after 8.9 using the advanced "incremental=false" flag).

      Parameters:
      backupName - the name of the backup that this request should delete a single backup-point from.
      backupId - the ID of the backup-point for this request to delete
    • deleteBackupByRecency

      public static CollectionAdminRequest.DeleteBackup deleteBackupByRecency(String backupName, int numRecentBackupPointsToRetain)
      Create a SolrRequest object to delete all backup-points after the most recent 'N'

      The created request object is only valid on backup locations that use the new "incremental" backup file-format introduced in Solr 8.9. It should not be used on locations holding "non-incremental" backups (those created prior to 8.9, or after 8.9 using the advanced "incremental=false" flag).

      Parameters:
      backupName - the name of the backup that this request should delete backup-points from.
      numRecentBackupPointsToRetain - the number of "most-recent" backup-points to retain.
    • deleteBackupPurgeUnusedFiles

      public static CollectionAdminRequest.DeleteBackup deleteBackupPurgeUnusedFiles(String backupName)
      Create a SolrRequest object to delete all unused-files at the backup location.

      The created request object is only valid on backup locations that use the new "incremental" backup file-format introduced in Solr 8.9. It should not be used on locations holding "non-incremental" backups (those created prior to 8.9, or after 8.9 using the advanced "incremental=false" flag).

      Parameters:
      backupName - the name of the backup that this request should delete unused files from.
    • listBackup

      public static CollectionAdminRequest.ListBackup listBackup(String backupName)
      Create a SolrRequest object to list information about all backup points with the specified name.
      Parameters:
      backupName - the name of the backup that this request should list information about
    • addReplicaProperty

      public static CollectionAdminRequest.AddReplicaProp addReplicaProperty(String collection, String shard, String replica, String propertyName, String propertyValue)
      Returns a SolrRequest to add a property to a specific replica
    • deleteReplicaProperty

      public static CollectionAdminRequest.DeleteReplicaProp deleteReplicaProperty(String collection, String shard, String replica, String propertyName)
      Returns a SolrRequest to delete a property from a specific replica
    • balanceReplicaProperty

      public static CollectionAdminRequest.BalanceShardUnique balanceReplicaProperty(String collection, String propertyName)
      Returns a SolrRequest to balance a replica property across the shards of a collection