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 DocumentDictionary, except it obtains the weight of the terms in a document based on a ValueSource.

NOTE:
  • 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 a ValueSource 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 Details

    • DocumentValueSourceDictionary

      public DocumentValueSourceDictionary(IndexReader reader, String field, ValueSource weightsValueSource, String payload)
      Creates a new dictionary with the contents of the fields named field for the terms, payloadField for the corresponding payloads and uses the weightsValueSource supplied to determine the score.
    • DocumentValueSourceDictionary

      public DocumentValueSourceDictionary(IndexReader reader, String field, ValueSource weightsValueSource)
      Creates a new dictionary with the contents of the fields named field for the terms and uses the weightsValueSource supplied to determine the score.
  • Method Details