public class OrdFieldSource extends ValueSource
Fieldcache using getStringIndex().
The native lucene index order is used to assign an ordinal value for each field value.
Example:
If there were only three field values: "apple","banana","pear"
then ord("apple")=1, ord("banana")=2, ord("pear")=3
WARNING: ord() depends on the position in an index and can thus change when other documents are inserted or deleted, or if a MultiSearcher is used.
NOTE: with the switch in 2.9 to segment-based
searching, if getValues(org.apache.lucene.index.IndexReader) is invoked with a
composite (multi-segment) reader, this can easily cause
double RAM usage for the values in the FieldCache. It's
best to switch your application to pass only atomic
(single segment) readers to this API.
| Constructor and Description |
|---|
OrdFieldSource(String field)
Constructor for a certain field.
|
| Modifier and Type | Method and Description |
|---|---|
String |
description()
description of field, used in explain()
|
boolean |
equals(Object o)
Needed for possible caching of query results - used by
ValueSourceQuery.equals(Object). |
DocValues |
getValues(IndexReader reader)
Return the DocValues used by the function query.
|
int |
hashCode()
Needed for possible caching of query results - used by
ValueSourceQuery.hashCode(). |
toStringprotected String field
public OrdFieldSource(String field)
field - field whose values order is used.public String description()
ValueSourcedescription in class ValueSourcepublic DocValues getValues(IndexReader reader) throws IOException
ValueSourcegetValues in class ValueSourcereader - the IndexReader used to read these values.
If any caching is involved, that caching would also be IndexReader based.IOException - for any error.public boolean equals(Object o)
ValueSourceValueSourceQuery.equals(Object).equals in class ValueSourceObject.equals(Object)public int hashCode()
ValueSourceValueSourceQuery.hashCode().hashCode in class ValueSourceObject.hashCode()