public class ReverseOrdFieldSource extends ValueSource
FieldCache
using getStringIndex()
and reverses the order.
The native lucene index order is used to assign an ordinal value for each field value.
Field values (terms) are lexicographically ordered by unicode value, and numbered starting at 1.
Example of reverse ordinal (rord):
If there were only three field values: "apple","banana","pear"
then rord("apple")=3, rord("banana")=2, ord("pear")=1
WARNING: rord() depends on the position in an index and can thus change when other documents are inserted or deleted, or if a MultiSearcher is used.
WARNING: The status of the search.function package is experimental. The APIs introduced here might change in the future and will not be supported anymore in such a case.
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. Alternatively, for
a short-term fix, you could wrap your ValueSource using
MultiValueSource
, which costs more CPU per lookup
but will not consume double the FieldCache RAM.
Modifier and Type | Field and Description |
---|---|
java.lang.String |
field |
Constructor and Description |
---|
ReverseOrdFieldSource(java.lang.String field)
Contructor for a certain field.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
description()
description of field, used in explain()
|
boolean |
equals(java.lang.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() . |
toString
public ReverseOrdFieldSource(java.lang.String field)
field
- field whose values reverse order is used.public java.lang.String description()
ValueSource
description
in class ValueSource
public DocValues getValues(IndexReader reader) throws java.io.IOException
ValueSource
getValues
in class ValueSource
reader
- the IndexReader used to read these values.
If any caching is involved, that caching would also be IndexReader based.java.io.IOException
- for any error.public boolean equals(java.lang.Object o)
ValueSource
ValueSourceQuery.equals(Object)
.equals
in class ValueSource
Object.equals(Object)
public int hashCode()
ValueSource
ValueSourceQuery.hashCode()
.hashCode
in class ValueSource
Object.hashCode()
Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.