Expert: obtains the ordinal of the field value from the default Lucene
{@link Lucene.Net.Search.FieldCache Fieldcache} using getStringIndex().
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:
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. 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 {@link #getValues} 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 {@link MultiValueSource}, which costs more CPU per lookup but will not consume double the FieldCache RAM.
Namespace: Lucene.Net.Search.FunctionIf 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. 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 {@link #getValues} 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 {@link MultiValueSource}, which costs more CPU per lookup but will not consume double the FieldCache RAM.
Assembly: Lucene.Net (in Lucene.Net.dll) Version: 2.9.4.1
Syntax
C# |
---|
[SerializableAttribute] public class OrdFieldSource : ValueSource |
Visual Basic |
---|
<SerializableAttribute> _ Public Class OrdFieldSource _ Inherits ValueSource |
Visual C++ |
---|
[SerializableAttribute] public ref class OrdFieldSource : public ValueSource |
Inheritance Hierarchy
System..::..Object
Lucene.Net.Search.Function..::..ValueSource
Lucene.Net.Search.Function..::..OrdFieldSource
Lucene.Net.Search.Function..::..ValueSource
Lucene.Net.Search.Function..::..OrdFieldSource