public abstract class DocRouter extends Object
Modifier and Type | Class and Description |
---|---|
static class |
DocRouter.Range |
Modifier and Type | Field and Description |
---|---|
static DocRouter |
DEFAULT |
static String |
DEFAULT_NAME |
Constructor and Description |
---|
DocRouter() |
Modifier and Type | Method and 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 information
|
abstract boolean |
isTargetSlice(String id,
SolrInputDocument sdoc,
SolrParams params,
String shardId,
DocCollection collection) |
List<DocRouter.Range> |
partitionRange(int partitions,
DocRouter.Range range)
Split the range into partitions.
|
List<DocRouter.Range> |
partitionRange(int partitions,
DocRouter.Range range,
float fuzz)
Split the range into partitions with inexact sizes.
|
public static final String DEFAULT_NAME
public static final DocRouter DEFAULT
protected String getRouteField(DocCollection coll)
public static Map<String,Object> getRouterSpec(ZkNodeProps props)
public DocRouter.Range fromString(String range)
public DocRouter.Range fullRange()
public List<DocRouter.Range> partitionRange(int partitions, DocRouter.Range range)
partitions
- number of partitionsrange
- range to splitpublic List<DocRouter.Range> partitionRange(int partitions, DocRouter.Range range, float fuzz)
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.public abstract Slice getTargetSlice(String id, SolrInputDocument sdoc, String route, SolrParams params, DocCollection collection)
public abstract Collection<Slice> getSearchSlicesSingle(String shardKey, SolrParams params, DocCollection collection)
public abstract boolean isTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection)
public Collection<Slice> getSearchSlices(String shardKeys, SolrParams params, DocCollection collection)
Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.