org.apache.lucene.search.function
Class OrdFieldSource

java.lang.Object
  extended by org.apache.lucene.search.function.ValueSource
      extended by org.apache.lucene.search.function.OrdFieldSource
All Implemented Interfaces:
Serializable

public class OrdFieldSource
extends ValueSource

Expert: obtains the ordinal of the field value from the default Lucene 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.

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.

See Also:
Serialized Form

Field Summary
protected  String field
           
 
Constructor Summary
OrdFieldSource(String field)
          Constructor for a certain field.
 
Method Summary
 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().
 
Methods inherited from class org.apache.lucene.search.function.ValueSource
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

field

protected String field
Constructor Detail

OrdFieldSource

public OrdFieldSource(String field)
Constructor for a certain field.

Parameters:
field - field whose values order is used.
Method Detail

description

public String description()
Description copied from class: ValueSource
description of field, used in explain()

Specified by:
description in class ValueSource

getValues

public DocValues getValues(IndexReader reader)
                    throws IOException
Description copied from class: ValueSource
Return the DocValues used by the function query.

Specified by:
getValues in class ValueSource
Parameters:
reader - the IndexReader used to read these values. If any caching is involved, that caching would also be IndexReader based.
Throws:
IOException - for any error.

equals

public boolean equals(Object o)
Description copied from class: ValueSource
Needed for possible caching of query results - used by ValueSourceQuery.equals(Object).

Specified by:
equals in class ValueSource
See Also:
Object.equals(Object)

hashCode

public int hashCode()
Description copied from class: ValueSource
Needed for possible caching of query results - used by ValueSourceQuery.hashCode().

Specified by:
hashCode in class ValueSource
See Also:
Object.hashCode()


Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.