Package org.apache.solr.common.cloud
Class DocRouter
java.lang.Object
org.apache.solr.common.cloud.DocRouter
- Direct Known Subclasses:
HashBasedRouter,ImplicitDocRouter
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 -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfromString(String range) static DocRoutergetDocRouter(String routerName) abstract StringgetName()getRouteField(DocCollection coll) getRouterSpec(ZkNodeProps props) getSearchRangeSingle(String shardKey, SolrParams params, DocCollection collection) This method is consulted to determine what search range (the part of the hash ring) should be queried for a request when an explicit shards' parameter was not used.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 SlicegetTargetSlice(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 booleanisTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection) partitionRange(int partitions, DocRouter.Range range) Split the range into partitions.partitionRange(int partitions, DocRouter.Range range, float fuzz) Split the range into partitions with inexact sizes.
-
Field Details
-
DEFAULT_NAME
- See Also:
-
DEFAULT
-
-
Constructor Details
-
DocRouter
public DocRouter()
-
-
Method Details
-
getDocRouter
-
getRouteField
-
getRouterSpec
-
fromString
-
fullRange
-
partitionRange
Split the range into partitions.- Parameters:
partitions- number of partitionsrange- range to split
-
partitionRange
Split the range into partitions with inexact sizes.- Parameters:
partitions- number of partitionsrange- range to splitfuzz- value between 0 (inclusive) and 0.5 (exclusive) indicating inexact split, i.e. percentage of variation in resulting ranges - odd ranges will be larger and even ranges will be smaller by up to that percentage.
-
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 -
getSearchRangeSingle
public DocRouter.Range getSearchRangeSingle(String shardKey, SolrParams params, DocCollection collection) This method is consulted to determine what search range (the part of the hash ring) should be queried for a request when an explicit shards' parameter was not used. This method only accepts a single shard key (or null). -
isTargetSlice
public abstract boolean isTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection) -
getName
-
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.
-