## org.apache.lucene.search.function
Class ValueSource

    java.lang.Object
      org.apache.lucene.search.function.ValueSource

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  FieldCacheSource, OrdFieldSource, ReverseOrdFieldSource

    public abstract class ValueSource

extends Object
implements Serializable

Expert: source of values for basic function queries.

At its default/simplest form, values - one per doc - are used as the score of that doc.

Values are instantiated as `DocValues` for a particular reader.

ValueSource implementations differ in RAM requirements: it would always be a factor of the number of documents, but for each document the number of bytes can be 1, 2, 4, or 8.

See Also:
  Serialized Form
WARNING: This API is experimental and might change in incompatible ways in the next release.

Constructor Summary
`ValueSource()`

Method Summary
`abstract String` `description()` description of field, used in explain()
`abstract boolean` `equals(Object o)` Needed for possible caching of query results - used by `ValueSourceQuery.equals(Object)`.
`abstract DocValues` `getValues(IndexReader reader)` Return the DocValues used by the function query.
`abstract int` `hashCode()` Needed for possible caching of query results - used by `ValueSourceQuery.hashCode()`.
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ValueSource

    public ValueSource()

Method Detail

### getValues

    public abstract DocValues getValues(IndexReader reader)
                                 throws IOException

  Return the DocValues used by the function query.

  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.

### description

    public abstract String description()

  description of field, used in explain()

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### equals

    public abstract boolean equals(Object o)

  Needed for possible caching of query results - used by `ValueSourceQuery.equals(Object)`.

  Overrides:
    `equals` in class `Object`
  See Also:
    `Object.equals(Object)`

### hashCode

    public abstract int hashCode()

  Needed for possible caching of query results - used by `ValueSourceQuery.hashCode()`.

  Overrides:
    `hashCode` in class `Object`
  See Also:
    `Object.hashCode()`