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 and optionally contexts 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 `LongValuesSource`. NOTE:

- The term field has to be stored; if it is missing, the document is skipped.
- The payload and contexts field are optional and are not required to be stored.

In practice the `LongValuesSource` will likely be obtained using the lucene expression module. The following example shows how to create a `LongValuesSource` from a simple addition of two fields: `Expression expression = JavascriptCompiler.compile("f1 + f2"); SimpleBindings bindings = new SimpleBindings(); bindings.add("f1", DoubleValuesSource.fromLongField("f1")); bindings.add("f2", DoubleValuesSource.fromLongField("f2")); LongValuesSource valueSource = expression.getDoubleValuesSource(bindings).toLongValuesSource();`

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.lucene.search.suggest.DocumentDictionary

  `DocumentDictionary.DocumentInputIterator`

- ## Field Summary

  ### Fields inherited from class org.apache.lucene.search.suggest.DocumentDictionary

  `contextsField, payloadField, reader, storedFields`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DocumentValueSourceDictionary(IndexReader reader, String field, LongValuesSource 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.
  `DocumentValueSourceDictionary(IndexReader reader, String field, LongValuesSource 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(IndexReader reader, String field, LongValuesSource weightsValueSource, String payload, String contexts)`
  Creates a new dictionary with the contents of the fields named `field` for the terms, `payload` for the corresponding payloads, `contexts` for the associated contexts and uses the `weightsValueSource` supplied to determine the score.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InputIterator`
  `getEntryIterator()`
  Returns an iterator over all the entries

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DocumentValueSourceDictionary

    public DocumentValueSourceDictionary(IndexReader reader, String field, LongValuesSource weightsValueSource, String payload, String contexts) throws IOException
    Creates a new dictionary with the contents of the fields named `field` for the terms, `payload` for the corresponding payloads, `contexts` for the associated contexts and uses the `weightsValueSource` supplied to determine the score.
    Throws:
      `IOException`

  - ### DocumentValueSourceDictionary

    public DocumentValueSourceDictionary(IndexReader reader, String field, LongValuesSource weightsValueSource, String payload) throws IOException
    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.
    Throws:
      `IOException`

  - ### DocumentValueSourceDictionary

    public DocumentValueSourceDictionary(IndexReader reader, String field, LongValuesSource weightsValueSource) throws IOException
    Creates a new dictionary with the contents of the fields named `field` for the terms and uses the `weightsValueSource` supplied to determine the score.
    Throws:
      `IOException`

- ## Method Details

  - ### getEntryIterator

    public InputIterator getEntryIterator() throws IOException
    Description copied from interface: `Dictionary`
    Returns an iterator over all the entries
    Specified by:
      `getEntryIterator` in interface `Dictionary`
    Overrides:
      `getEntryIterator` in class `DocumentDictionary`
    Returns:
      Iterator
    Throws:
      `IOException`