Class SearchShardIterator

java.lang.Object
org.elasticsearch.action.search.SearchShardIterator
All Implemented Interfaces:
Comparable<SearchShardIterator>

public final class SearchShardIterator extends Object implements Comparable<SearchShardIterator>
Iterator for shards used in the search api, which also holds the OriginalIndices of the search request (useful especially with cross-cluster search, as each cluster has its own set of original indices) as well as the cluster alias.
See Also:
  • Constructor Details

    • SearchShardIterator

      public SearchShardIterator(@Nullable String clusterAlias, ShardId shardId, List<ShardRouting> shards, OriginalIndices originalIndices)
      Creates a SearchShardIterator instance that iterates over a subset of the given shards this the a given shardId.
      Parameters:
      clusterAlias - the alias of the cluster where the shard is located
      shardId - shard id of the group
      shards - shards to iterate
      originalIndices - the indices that the search request originally related to (before any rewriting happened)
    • SearchShardIterator

      public SearchShardIterator(@Nullable String clusterAlias, ShardId shardId, List<String> targetNodeIds, OriginalIndices originalIndices, ShardSearchContextId searchContextId, TimeValue searchContextKeepAlive, boolean prefiltered, boolean skip)
      Creates a SearchShardIterator instance that iterates over a subset of the given shards
      Parameters:
      clusterAlias - the alias of the cluster where the shard is located
      shardId - shard id of the group
      targetNodeIds - the list of nodes hosting shard copies
      originalIndices - the indices that the search request originally related to (before any rewriting happened)
      searchContextId - the point-in-time specified for this group if exists
      searchContextKeepAlive - the time interval that data nodes should extend the keep alive of the point-in-time
      prefiltered - if true, then this group already executed the can_match phase
      skip - if true, then this group won't have matches, and it can be safely skipped from the search
  • Method Details

    • getOriginalIndices

      public OriginalIndices getOriginalIndices()
      Returns the original indices associated with this shard iterator, specifically with the cluster that this shard belongs to.
    • getClusterAlias

      @Nullable public String getClusterAlias()
      Returns the alias of the cluster where the shard is located.
    • size

      public int size()
      The number of shard routing instances.
      Returns:
      number of shard routing instances in this iterator
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo(SearchShardIterator o)
      Specified by:
      compareTo in interface Comparable<SearchShardIterator>