Package org.apache.lucene.search.suggest
Class DocumentValueSourceDictionary
- java.lang.Object
-
- org.apache.lucene.search.suggest.DocumentDictionary
-
- org.apache.lucene.search.suggest.DocumentValueSourceDictionary
-
- All Implemented Interfaces:
Dictionary
public class DocumentValueSourceDictionary extends DocumentDictionary
Dictionary with terms and optionally payload information taken from stored fields in a Lucene index. Similar to
NOTE:DocumentDictionary
, except it obtains the weight of the terms in a document based on aValueSource
.- The term and (optionally) payload fields have to be stored
- if the term or (optionally) payload fields supplied do not have a value for a document, then the document is rejected by the dictionary
In practice the
ValueSource
will likely be obtained using the lucene expression module. The following example shows how to create aValueSource
from a simple addition of two fields:Expression expression = JavascriptCompiler.compile("f1 + f2"); SimpleBindings bindings = new SimpleBindings(); bindings.add(new SortField("f1", SortField.Type.LONG)); bindings.add(new SortField("f2", SortField.Type.LONG)); ValueSource valueSource = expression.getValueSource(bindings);
-
-
Constructor Summary
Constructors Constructor Description DocumentValueSourceDictionary(IndexReader reader, java.lang.String field, ValueSource weightsValueSource)
Creates a new dictionary with the contents of the fields namedfield
for the terms and uses theweightsValueSource
supplied to determine the score.DocumentValueSourceDictionary(IndexReader reader, java.lang.String field, ValueSource weightsValueSource, java.lang.String payload)
Creates a new dictionary with the contents of the fields namedfield
for the terms,payloadField
for the corresponding payloads and uses theweightsValueSource
supplied to determine the score.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description InputIterator
getEntryIterator()
Returns an iterator over all the entries
-
-
-
Constructor Detail
-
DocumentValueSourceDictionary
public DocumentValueSourceDictionary(IndexReader reader, java.lang.String field, ValueSource weightsValueSource, java.lang.String payload)
Creates a new dictionary with the contents of the fields namedfield
for the terms,payloadField
for the corresponding payloads and uses theweightsValueSource
supplied to determine the score.
-
DocumentValueSourceDictionary
public DocumentValueSourceDictionary(IndexReader reader, java.lang.String field, ValueSource weightsValueSource)
Creates a new dictionary with the contents of the fields namedfield
for the terms and uses theweightsValueSource
supplied to determine the score.
-
-
Method Detail
-
getEntryIterator
public InputIterator getEntryIterator() throws java.io.IOException
Description copied from interface:Dictionary
Returns an iterator over all the entries- Specified by:
getEntryIterator
in interfaceDictionary
- Overrides:
getEntryIterator
in classDocumentDictionary
- Returns:
- Iterator
- Throws:
java.io.IOException
-
-