Class 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 Summary

      Constructors 
      Constructor Description
      DocumentValueSourceDictionary​(IndexReader reader, java.lang.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.
      DocumentValueSourceDictionary​(IndexReader reader, java.lang.String field, ValueSource weightsValueSource, java.lang.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.
    • 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 named field for the terms, payloadField for the corresponding payloads and uses the weightsValueSource 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 named field for the terms and uses the weightsValueSource supplied to determine the score.