Package org.apache.solr.common.cloud
Class DocRouter
- java.lang.Object
-
- org.apache.solr.common.cloud.DocRouter
-
- Direct Known Subclasses:
HashBasedRouter
,ImplicitDocRouter
public abstract class DocRouter extends Object
Class to partition int range into n ranges.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DocRouter.Range
-
Field Summary
Fields Modifier and Type Field Description static DocRouter
DEFAULT
static String
DEFAULT_NAME
-
Constructor Summary
Constructors Constructor Description DocRouter()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description DocRouter.Range
fromString(String range)
DocRouter.Range
fullRange()
static DocRouter
getDocRouter(String routerName)
protected String
getRouteField(DocCollection coll)
static Map<String,Object>
getRouterSpec(ZkNodeProps props)
Collection<Slice>
getSearchSlices(String shardKeys, SolrParams params, DocCollection collection)
This method is consulted to determine what slices should be queried for a request when an explicit shards parameter was not used.abstract Collection<Slice>
getSearchSlicesSingle(String shardKey, SolrParams params, DocCollection collection)
This method is consulted to determine what slices should be queried for a request when an explicit shards parameter was not used.abstract Slice
getTargetSlice(String id, SolrInputDocument sdoc, String route, SolrParams params, DocCollection collection)
Returns the Slice that the document should reside on, or null if there is not enough informationabstract boolean
isTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection)
List<DocRouter.Range>
partitionRange(int partitions, DocRouter.Range range)
Returns the range for each partition
-
-
-
Field Detail
-
DEFAULT_NAME
public static final String DEFAULT_NAME
- See Also:
- Constant Field Values
-
DEFAULT
public static final DocRouter DEFAULT
-
-
Method Detail
-
getRouteField
protected String getRouteField(DocCollection coll)
-
getRouterSpec
public static Map<String,Object> getRouterSpec(ZkNodeProps props)
-
fromString
public DocRouter.Range fromString(String range)
-
fullRange
public DocRouter.Range fullRange()
-
partitionRange
public List<DocRouter.Range> partitionRange(int partitions, DocRouter.Range range)
Returns the range for each partition
-
getTargetSlice
public abstract Slice getTargetSlice(String id, SolrInputDocument sdoc, String route, SolrParams params, DocCollection collection)
Returns the Slice that the document should reside on, or null if there is not enough information
-
getSearchSlicesSingle
public abstract Collection<Slice> getSearchSlicesSingle(String shardKey, SolrParams params, DocCollection collection)
This method is consulted to determine what slices should be queried for a request when an explicit shards parameter was not used. This method only accepts a single shard key (or null). If you have a comma separated list of shard keys, call getSearchSlices
-
isTargetSlice
public abstract boolean isTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection)
-
getSearchSlices
public Collection<Slice> getSearchSlices(String shardKeys, SolrParams params, DocCollection collection)
This method is consulted to determine what slices should be queried for a request when an explicit shards parameter was not used. This method accepts a multi-valued shardKeys parameter (normally comma separated from the shard.keys request parameter) and aggregates the slices returned by getSearchSlicesSingle for each shardKey.
-
-