java.lang.Object
org.elasticsearch.search.suggest.completion.context.ContextMappings
All Implemented Interfaces:
Iterable<ContextMapping<?>>, org.elasticsearch.common.xcontent.ToXContent

public class ContextMappings extends Object implements org.elasticsearch.common.xcontent.ToXContent, Iterable<ContextMapping<?>>
ContextMappings indexes context-enabled suggestion fields and creates context queries for defined ContextMappings for a CompletionFieldMapper
  • Constructor Details

  • Method Details

    • size

      public int size()
      Returns:
      number of context mappings held by this instance
    • get

      public ContextMapping<?> get(String name)
      Returns a context mapping by its name
    • addField

      public void addField(LuceneDocument document, String name, String input, int weight, Map<String,​Set<String>> contexts)
      Adds a context-enabled field for all the defined mappings to document see ContextMappings.TypedContextField
    • iterator

      public Iterator<ContextMapping<?>> iterator()
      Specified by:
      iterator in interface Iterable<ContextMapping<?>>
    • toContextQuery

      public org.apache.lucene.search.suggest.document.ContextQuery toContextQuery(org.apache.lucene.search.suggest.document.CompletionQuery query, Map<String,​List<ContextMapping.InternalQueryContext>> queryContexts)
      Wraps a CompletionQuery with context queries
      Parameters:
      query - base completion query to wrap
      queryContexts - a map of context mapping name and collected query contexts
      Returns:
      a context-enabled query
    • getNamedContexts

      public Map<String,​Set<String>> getNamedContexts(List<CharSequence> contexts)
      Maps an output context list to a map of context mapping names and their values see ContextMappings.TypedContextField
      Returns:
      a map of context names and their values
    • load

      public static ContextMappings load(Object configuration) throws ElasticsearchParseException
      Loads ContextMappings from configuration Expected configuration: List of maps representing ContextMapping [{"name": .., "type": .., ..}, {..}]
      Throws:
      ElasticsearchParseException
    • toXContent

      public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException
      Writes a list of objects specified by the defined ContextMappings see ContextMapping.toXContent(XContentBuilder, Params)
      Specified by:
      toXContent in interface org.elasticsearch.common.xcontent.ToXContent
      Throws:
      IOException
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object