Interface ValueFetcher

All Known Implementing Classes:
ArraySourceValueFetcher, DocValueFetcher, NestedValueFetcher, SourceValueFetcher, StoredValueFetcher

public interface ValueFetcher
A helper class for fetching field values during the FetchFieldsPhase. Each MappedFieldType is in charge of defining a value fetcher through MappedFieldType.valueFetcher(org.elasticsearch.index.query.SearchExecutionContext, java.lang.String).
  • Method Details

    • fetchValues

      List<Object> fetchValues(SourceLookup lookup, List<Object> ignoredValues) throws IOException
      This method is consumed by fetchDocumentField(String, SourceLookup). Given access to a document's _source, return this field's values.

      In addition to pulling out the values, they will be parsed into a standard form. For example numeric field mappers make sure to parse the source value into a number of the right type.

      Note that for array values, the order in which values are returned is undefined and should not be relied on.

      Parameters:
      lookup - a lookup structure over the document's source.
      ignoredValues - a mutable list to collect any ignored values as they were originally presented in source
      Returns:
      a list a standardized field values.
      Throws:
      IOException
    • fetchDocumentField

      @Nullable default DocumentField fetchDocumentField(String docName, SourceLookup lookup) throws IOException
      Prefer implementing fetchValues(SourceLookup, List), which is simpler, when possible instead of this method. The default implementation creates a DocumentField using the values from fetchValues(SourceLookup, List)
      Parameters:
      docName - the name of the document field
      lookup - a lookup structure over the document's source.
      Returns:
      a document field if this fetcher has values; otherwise returns null
      Throws:
      IOException
    • setNextReader

      default void setNextReader(org.apache.lucene.index.LeafReaderContext context)
      Update the leaf reader used to fetch values.