Package org.apache.solr.search
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 thatSolrIndexSearcher
can then be asked to find all documents "after" the values represented by thisCursorMark
.
-
-
Constructor Summary
Constructors Constructor Description CursorMark(IndexSchema schema, SortSpec sortSpec)
Generates an empty CursorMark bound for use with the specified schema andSortSpec
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CursorMark
createNext(List<Object> nextSortValues)
Generates an new CursorMark bound for use with the sameSortSpec
as the current CursorMark but using the new SortValues.org.apache.lucene.search.FieldDoc
getSearchAfterFieldDoc()
Returns a synthetically constructedFieldDoc
whoseFieldDoc.fields
match the values of this object.String
getSerializedTotem()
Generates a Base64 encoded serialized representation of the sort values encapsulated by this object, for use in cursor requests.SortSpec
getSortSpec()
Returns the SortSpec used by this object.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)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.void
setSortValues(List<Object> input)
Sets the (raw, unmarshalled) sort values (which must conform to the existing sortSpec) to populate this object.
-
-
-
Constructor Detail
-
CursorMark
public CursorMark(IndexSchema schema, SortSpec sortSpec)
Generates an empty CursorMark bound for use with the specified schema andSortSpec
.- Parameters:
schema
- used for basic validationsortSpec
- bound to this totem (un)marshalling serialized values
-
-
Method Detail
-
createNext
public CursorMark createNext(List<Object> nextSortValues)
Generates an new CursorMark bound for use with the sameSortSpec
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()
-
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:
parseSerializedTotem(java.lang.String)
-
getSearchAfterFieldDoc
public org.apache.lucene.search.FieldDoc getSearchAfterFieldDoc()
Returns a synthetically constructedFieldDoc
whoseFieldDoc.fields
match the values of this object.Important Notes:
ScoreDoc.doc
will always be set toInteger.MAX_VALUE
so that the tie breaking logic used byIndexSearcher
won't select the same doc again based on the internal lucene docId when the SolruniqueKey
value is the same.ScoreDoc.score
will always be set to 0.0F since it is not used when applyingsearchAfter
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.
-
-