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 and Description
    --- | ---
    `static class` | `DocRouter.Range`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static DocRouter` | `DEFAULT`
    `static String` | `DEFAULT_NAME`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DocRouter()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    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)` Returns the range for each partition

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_NAME

          public static final String DEFAULT_NAME

      See Also:
        Constant Field Values

    - #### DEFAULT

          public static final DocRouter DEFAULT

  - ### Constructor Detail

    - #### DocRouter

          public DocRouter()

  - ### Method Detail

    - #### getDocRouter

          public static DocRouter getDocRouter(String routerName)

    - #### 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.

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.