Class AbstractQueryBuilder<QB extends AbstractQueryBuilder<QB>>

java.lang.Object
org.elasticsearch.index.query.AbstractQueryBuilder<QB>
All Implemented Interfaces:
NamedWriteable, Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject, QueryBuilder, Rewriteable<QueryBuilder>
Direct Known Subclasses:
AbstractGeometryQueryBuilder, BaseTermQueryBuilder, BoolQueryBuilder, BoostingQueryBuilder, CombinedFieldsQueryBuilder, CommonTermsQueryBuilder, ConstantScoreQueryBuilder, DisMaxQueryBuilder, DistanceFeatureQueryBuilder, ExistsQueryBuilder, FieldMaskingSpanQueryBuilder, FunctionScoreQueryBuilder, FuzzyQueryBuilder, GeoBoundingBoxQueryBuilder, GeoDistanceQueryBuilder, GeoPolygonQueryBuilder, IdsQueryBuilder, IntervalQueryBuilder, MatchAllQueryBuilder, MatchBoolPrefixQueryBuilder, MatchNoneQueryBuilder, MatchPhrasePrefixQueryBuilder, MatchPhraseQueryBuilder, MatchQueryBuilder, MoreLikeThisQueryBuilder, MultiMatchQueryBuilder, NestedQueryBuilder, PrefixQueryBuilder, QueryStringQueryBuilder, RangeQueryBuilder, RegexpQueryBuilder, ScriptQueryBuilder, ScriptScoreQueryBuilder, SimpleQueryStringBuilder, SpanContainingQueryBuilder, SpanFirstQueryBuilder, SpanMultiTermQueryBuilder, SpanNearQueryBuilder, SpanNotQueryBuilder, SpanOrQueryBuilder, SpanWithinQueryBuilder, TermsQueryBuilder, TermsSetQueryBuilder, TypeQueryBuilder, WildcardQueryBuilder, WrapperQueryBuilder

public abstract class AbstractQueryBuilder<QB extends AbstractQueryBuilder<QB>> extends Object implements QueryBuilder
Base class for all classes producing lucene queries. Supports conversion to BytesReference and creation of lucene Query objects.
  • Field Details

    • DEFAULT_BOOST

      public static final float DEFAULT_BOOST
      Default for boost to apply to resulting Lucene query. Defaults to 1.0
      See Also:
      Constant Field Values
    • NAME_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField NAME_FIELD
    • BOOST_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField BOOST_FIELD
    • queryName

      protected String queryName
    • boost

      protected float boost
  • Constructor Details

    • AbstractQueryBuilder

      protected AbstractQueryBuilder()
    • AbstractQueryBuilder

      protected AbstractQueryBuilder(StreamInput in) throws IOException
      Throws:
      IOException
  • Method Details

    • writeTo

      public final void writeTo(StreamOutput out) throws IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Throws:
      IOException
    • doWriteTo

      protected abstract void doWriteTo(StreamOutput out) throws IOException
      Throws:
      IOException
    • toXContent

      public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException
      Specified by:
      toXContent in interface org.elasticsearch.common.xcontent.ToXContent
      Throws:
      IOException
    • doXContent

      protected abstract void doXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException
      Throws:
      IOException
    • printBoostAndQueryName

      protected void printBoostAndQueryName(org.elasticsearch.common.xcontent.XContentBuilder builder) throws IOException
      Throws:
      IOException
    • toQuery

      public final org.apache.lucene.search.Query toQuery(SearchExecutionContext context) throws IOException
      Description copied from interface: QueryBuilder
      Converts this QueryBuilder to a lucene Query. Returns null if this query should be ignored in the context of parent queries.
      Specified by:
      toQuery in interface QueryBuilder
      Parameters:
      context - additional information needed to construct the queries
      Returns:
      the Query or null if this query should be ignored upstream
      Throws:
      IOException
    • doToQuery

      protected abstract org.apache.lucene.search.Query doToQuery(SearchExecutionContext context) throws IOException
      Throws:
      IOException
    • queryName

      public final QB queryName(String queryName)
      Sets the query name for the query.
      Specified by:
      queryName in interface QueryBuilder
    • queryName

      public final String queryName()
      Returns the query name for the query.
      Specified by:
      queryName in interface QueryBuilder
    • boost

      public final float boost()
      Returns the boost for this query.
      Specified by:
      boost in interface QueryBuilder
    • checkNegativeBoost

      protected final void checkNegativeBoost(float boost)
    • boost

      public final QB boost(float boost)
      Sets the boost for this query. Documents matching this query will (in addition to the normal weightings) have their score multiplied by the boost provided.
      Specified by:
      boost in interface QueryBuilder
    • addValidationError

      protected final QueryValidationException addValidationError(String validationError, QueryValidationException validationException)
    • equals

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

      protected abstract boolean doEquals(QB other)
      Indicates whether some other QueryBuilder object of the same type is "equal to" this one.
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • doHashCode

      protected abstract int doHashCode()
    • getName

      public String getName()
      Description copied from interface: QueryBuilder
      Returns the name that identifies uniquely the query
      Specified by:
      getName in interface QueryBuilder
    • rewrite

      public final QueryBuilder rewrite(QueryRewriteContext queryRewriteContext) throws IOException
      Description copied from interface: QueryBuilder
      Rewrites this query builder into its primitive form. By default this method return the builder itself. If the builder did not change the identity reference must be returned otherwise the builder will be rewritten infinitely.
      Specified by:
      rewrite in interface QueryBuilder
      Specified by:
      rewrite in interface Rewriteable<QB extends AbstractQueryBuilder<QB>>
      Throws:
      IOException
    • doRewrite

      protected QueryBuilder doRewrite(QueryRewriteContext queryRewriteContext) throws IOException
      Throws:
      IOException
    • extractInnerHitBuilders

      protected void extractInnerHitBuilders(Map<String,​InnerHitContextBuilder> innerHits)
      For internal usage only! Extracts the inner hits from the query tree. While it extracts inner hits, child inner hits are inlined into the inner hit builder they belong to.
    • parseInnerQueryBuilder

      public static QueryBuilder parseInnerQueryBuilder(org.elasticsearch.common.xcontent.XContentParser parser) throws IOException
      Parses a query excluding the query element that wraps it
      Throws:
      IOException
    • parseInnerQueryBuilder

      public static QueryBuilder parseInnerQueryBuilder(org.elasticsearch.common.xcontent.XContentParser parser, Integer nestedDepth) throws IOException
      Throws:
      IOException
    • requireValue

      protected static <T> T requireValue(T value, String message)
    • throwParsingExceptionOnMultipleFields

      protected static void throwParsingExceptionOnMultipleFields(String queryName, org.elasticsearch.common.xcontent.XContentLocation contentLocation, String processedFieldName, String currentFieldName)
    • declareStandardFields

      protected static void declareStandardFields(org.elasticsearch.common.xcontent.AbstractObjectParser<? extends QueryBuilder,​?> parser)
      Adds boost and query_name parsing to the AbstractObjectParser passed in. All query builders except MatchAllQueryBuilder and MatchNoneQueryBuilder support these fields so they should use this method.
    • toString

      public final String toString()
      Overrides:
      toString in class Object