Class CursorMark

java.lang.Object
org.apache.solr.search.CursorMark

public final class CursorMark extends Object
An object that encapsulates the basic information about the current Mark Point of a "Cursor" based request. CursorMark objects track the sort values of the last document returned to a user, so that SolrIndexSearcher can then be asked to find all documents "after" the values represented by this CursorMark.
  • Constructor Summary

    Constructors
    Constructor
    Description
    CursorMark(IndexSchema schema, SortSpec sortSpec)
    Generates an empty CursorMark bound for use with the specified schema and SortSpec.
  • Method Summary

    Modifier and Type
    Method
    Description
    createNext(List<Object> nextSortValues)
    Generates an new CursorMark bound for use with the same SortSpec as the current CursorMark but using the new SortValues.
    org.apache.lucene.search.FieldDoc
    Returns a synthetically constructed FieldDoc whose FieldDoc.fields match the values of this object.
    Generates a Base64 encoded serialized representation of the sort values encapsulated by this object, for use in cursor requests.
    Returns the SortSpec used by this object.
    Returns a copy of the (raw, unmarshalled) sort values used by this object, or null if first page of docs should be returned (ie: no sort after)
    void
    Parses the serialized version of a CursorMark from a client (which must conform to the existing sortSpec) and populates this object.
    void
    Sets the (raw, unmarshalled) sort values (which must conform to the existing sortSpec) to populate this object.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CursorMark

      public CursorMark(IndexSchema schema, SortSpec sortSpec)
      Generates an empty CursorMark bound for use with the specified schema and SortSpec.
      Parameters:
      schema - used for basic validation
      sortSpec - bound to this totem (un)marshalling serialized values
  • Method Details

    • createNext

      public CursorMark createNext(List<Object> nextSortValues)
      Generates an new CursorMark bound for use with the same SortSpec as the current CursorMark but using the new SortValues.
    • setSortValues

      public void setSortValues(List<Object> input)
      Sets the (raw, unmarshalled) sort values (which must conform to the existing sortSpec) to populate this object. If null, then there is nothing to "search after" and the "first page" of results should be returned.
    • getSortValues

      public List<Object> getSortValues()
      Returns a copy of the (raw, unmarshalled) sort values used by this object, or null if first page of docs should be returned (ie: no sort after)
    • getSortSpec

      public SortSpec getSortSpec()
      Returns the SortSpec used by this object.
    • parseSerializedTotem

      public void parseSerializedTotem(String serialized)
      Parses the serialized version of a CursorMark from a client (which must conform to the existing sortSpec) and populates this object.
      See Also:
    • getSerializedTotem

      public String getSerializedTotem()
      Generates a Base64 encoded serialized representation of the sort values encapsulated by this object, for use in cursor requests.
      See Also:
    • getSearchAfterFieldDoc

      public org.apache.lucene.search.FieldDoc getSearchAfterFieldDoc()
      Returns a synthetically constructed FieldDoc whose FieldDoc.fields match the values of this object.

      Important Notes:

      • ScoreDoc.doc will always be set to Integer.MAX_VALUE so that the tie breaking logic used by IndexSearcher won't select the same doc again based on the internal lucene docId when the Solr uniqueKey value is the same.
      • ScoreDoc.score will always be set to 0.0F since it is not used when applying searchAfter logic. (Even if the sort values themselves contain scores which are used in the sort)
      Returns:
      a FieldDoc to "search after" or null if the initial page of results is requested.