Class QueryBuilders

java.lang.Object
org.elasticsearch.index.query.QueryBuilders

public final class QueryBuilders extends Object
Utility class to create search queries.
  • Method Details

    • matchAllQuery

      public static MatchAllQueryBuilder matchAllQuery()
      A query that matches on all documents.
    • matchQuery

      public static MatchQueryBuilder matchQuery(String name, Object text)
      Creates a match query with type "BOOLEAN" for the provided field name and text.
      Parameters:
      name - The field name.
      text - The query text (to be analyzed).
    • commonTermsQuery

      @Deprecated public static CommonTermsQueryBuilder commonTermsQuery(String fieldName, Object text)
      Deprecated.
      Creates a common query for the provided field name and text.
      Parameters:
      fieldName - The field name.
      text - The query text (to be analyzed).
    • multiMatchQuery

      public static MultiMatchQueryBuilder multiMatchQuery(Object text, String... fieldNames)
      Creates a match query with type "BOOLEAN" for the provided field name and text.
      Parameters:
      fieldNames - The field names.
      text - The query text (to be analyzed).
    • matchBoolPrefixQuery

      public static MatchBoolPrefixQueryBuilder matchBoolPrefixQuery(String name, Object text)
      Creates a text query with type "BOOL_PREFIX" for the provided field name and text.
      Parameters:
      name - The field name.
      text - The query text (to be analyzed).
    • matchPhraseQuery

      public static MatchPhraseQueryBuilder matchPhraseQuery(String name, Object text)
      Creates a text query with type "PHRASE" for the provided field name and text.
      Parameters:
      name - The field name.
      text - The query text (to be analyzed).
    • matchPhrasePrefixQuery

      public static MatchPhrasePrefixQueryBuilder matchPhrasePrefixQuery(String name, Object text)
      Creates a match query with type "PHRASE_PREFIX" for the provided field name and text.
      Parameters:
      name - The field name.
      text - The query text (to be analyzed).
    • disMaxQuery

      public static DisMaxQueryBuilder disMaxQuery()
      A query that generates the union of documents produced by its sub-queries, and that scores each document with the maximum score for that document as produced by any sub-query, plus a tie breaking increment for any additional matching sub-queries.
    • combinedFieldsQuery

      public static CombinedFieldsQueryBuilder combinedFieldsQuery(Object text, String... fieldNames)
      Creates a combined fields query for the provided field names and text.
      Parameters:
      text - The query text (to be analyzed).
      fieldNames - The field names.
    • distanceFeatureQuery

      public static DistanceFeatureQueryBuilder distanceFeatureQuery(String name, DistanceFeatureQueryBuilder.Origin origin, String pivot)
      A query to boost scores based on their proximity to the given origin for date, date_nanos and geo_point field types.
      Parameters:
      name - The field name
      origin - The origin of the distance calculation. Can be a long, string or GeoPoint, depending on field type.
      pivot - The distance from the origin at which relevance scores receive half of the boost value.
    • idsQuery

      public static IdsQueryBuilder idsQuery()
      Constructs a query that will match only specific ids within all types.
    • idsQuery

      @Deprecated public static IdsQueryBuilder idsQuery(String... types)
      Deprecated.
      Types are in the process of being removed, use idsQuery() instead.
      Constructs a query that will match only specific ids within types.
      Parameters:
      types - The mapping/doc type
    • termQuery

      public static TermQueryBuilder termQuery(String name, String value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • termQuery

      public static TermQueryBuilder termQuery(String name, int value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • termQuery

      public static TermQueryBuilder termQuery(String name, long value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • termQuery

      public static TermQueryBuilder termQuery(String name, float value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • termQuery

      public static TermQueryBuilder termQuery(String name, double value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • termQuery

      public static TermQueryBuilder termQuery(String name, boolean value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • termQuery

      public static TermQueryBuilder termQuery(String name, Object value)
      A Query that matches documents containing a term.
      Parameters:
      name - The name of the field
      value - The value of the term
    • fuzzyQuery

      public static FuzzyQueryBuilder fuzzyQuery(String name, String value)
      A Query that matches documents using fuzzy query.
      Parameters:
      name - The name of the field
      value - The value of the term
      See Also:
      matchQuery(String, Object), rangeQuery(String)
    • fuzzyQuery

      public static FuzzyQueryBuilder fuzzyQuery(String name, Object value)
      A Query that matches documents using fuzzy query.
      Parameters:
      name - The name of the field
      value - The value of the term
      See Also:
      matchQuery(String, Object), rangeQuery(String)
    • prefixQuery

      public static PrefixQueryBuilder prefixQuery(String name, String prefix)
      A Query that matches documents containing terms with a specified prefix.
      Parameters:
      name - The name of the field
      prefix - The prefix query
    • rangeQuery

      public static RangeQueryBuilder rangeQuery(String name)
      A Query that matches documents within an range of terms.
      Parameters:
      name - The field name
    • wildcardQuery

      public static WildcardQueryBuilder wildcardQuery(String name, String query)
      Implements the wildcard search query. Supported wildcards are *, which matches any character sequence (including the empty one), and ?, which matches any single character. Note this query can be slow, as it needs to iterate over many terms. In order to prevent extremely slow WildcardQueries, a Wildcard term should not start with one of the wildcards * or ?. (The wildcard field type however, is optimised for leading wildcards)
      Parameters:
      name - The field name
      query - The wildcard query string
    • regexpQuery

      public static RegexpQueryBuilder regexpQuery(String name, String regexp)
      A Query that matches documents containing terms with a specified regular expression.
      Parameters:
      name - The name of the field
      regexp - The regular expression
    • queryStringQuery

      public static QueryStringQueryBuilder queryStringQuery(String queryString)
      A query that parses a query string and runs it. There are two modes that this operates. The first, when no field is added (using QueryStringQueryBuilder.field(String), will run the query once and non prefixed fields will use the QueryStringQueryBuilder.defaultField(String) set. The second, when one or more fields are added (using QueryStringQueryBuilder.field(String)), will run the parsed query against the provided fields, and combine them either using Dismax.
      Parameters:
      queryString - The query string to run
    • simpleQueryStringQuery

      public static SimpleQueryStringBuilder simpleQueryStringQuery(String queryString)
      A query that acts similar to a query_string query, but won't throw exceptions for any weird string syntax. See SimpleQueryParser for the full supported syntax.
    • boostingQuery

      public static BoostingQueryBuilder boostingQuery(QueryBuilder positiveQuery, QueryBuilder negativeQuery)
      The BoostingQuery class can be used to effectively demote results that match a given query. Unlike the "NOT" clause, this still selects documents that contain undesirable terms, but reduces their overall score:
    • boolQuery

      public static BoolQueryBuilder boolQuery()
      A Query that matches documents matching boolean combinations of other queries.
    • spanTermQuery

      public static SpanTermQueryBuilder spanTermQuery(String name, String value)
    • spanTermQuery

      public static SpanTermQueryBuilder spanTermQuery(String name, int value)
    • spanTermQuery

      public static SpanTermQueryBuilder spanTermQuery(String name, long value)
    • spanTermQuery

      public static SpanTermQueryBuilder spanTermQuery(String name, float value)
    • spanTermQuery

      public static SpanTermQueryBuilder spanTermQuery(String name, double value)
    • spanFirstQuery

      public static SpanFirstQueryBuilder spanFirstQuery(SpanQueryBuilder match, int end)
    • spanNearQuery

      public static SpanNearQueryBuilder spanNearQuery(SpanQueryBuilder initialClause, int slop)
    • spanNotQuery

      public static SpanNotQueryBuilder spanNotQuery(SpanQueryBuilder include, SpanQueryBuilder exclude)
    • spanOrQuery

      public static SpanOrQueryBuilder spanOrQuery(SpanQueryBuilder initialClause)
    • spanWithinQuery

      public static SpanWithinQueryBuilder spanWithinQuery(SpanQueryBuilder big, SpanQueryBuilder little)
      Creates a new span_within builder.
      Parameters:
      big - the big clause, it must enclose little for a match.
      little - the little clause, it must be contained within big for a match.
    • spanContainingQuery

      public static SpanContainingQueryBuilder spanContainingQuery(SpanQueryBuilder big, SpanQueryBuilder little)
      Creates a new span_containing builder.
      Parameters:
      big - the big clause, it must enclose little for a match.
      little - the little clause, it must be contained within big for a match.
    • spanMultiTermQueryBuilder

      public static SpanMultiTermQueryBuilder spanMultiTermQueryBuilder(MultiTermQueryBuilder multiTermQueryBuilder)
      Creates a SpanQueryBuilder which allows having a sub query which implements MultiTermQueryBuilder. This is useful for having e.g. wildcard or fuzzy queries inside spans.
      Parameters:
      multiTermQueryBuilder - The MultiTermQueryBuilder that backs the created builder.
    • fieldMaskingSpanQuery

      public static FieldMaskingSpanQueryBuilder fieldMaskingSpanQuery(SpanQueryBuilder query, String field)
    • constantScoreQuery

      public static ConstantScoreQueryBuilder constantScoreQuery(QueryBuilder queryBuilder)
      A query that wraps another query and simply returns a constant score equal to the query boost for every document in the query.
      Parameters:
      queryBuilder - The query to wrap in a constant score query
    • functionScoreQuery

      public static FunctionScoreQueryBuilder functionScoreQuery(QueryBuilder queryBuilder)
      A function_score query with no functions.
      Parameters:
      queryBuilder - The query to custom score
      Returns:
      the function score query
    • functionScoreQuery

      public static FunctionScoreQueryBuilder functionScoreQuery(QueryBuilder queryBuilder, FunctionScoreQueryBuilder.FilterFunctionBuilder[] filterFunctionBuilders)
      A query that allows to define a custom scoring function
      Parameters:
      queryBuilder - The query to custom score
      filterFunctionBuilders - the filters and functions to execute
      Returns:
      the function score query
    • functionScoreQuery

      public static FunctionScoreQueryBuilder functionScoreQuery(FunctionScoreQueryBuilder.FilterFunctionBuilder[] filterFunctionBuilders)
      A query that allows to define a custom scoring function
      Parameters:
      filterFunctionBuilders - the filters and functions to execute
      Returns:
      the function score query
    • functionScoreQuery

      public static FunctionScoreQueryBuilder functionScoreQuery(ScoreFunctionBuilder function)
      A query that allows to define a custom scoring function.
      Parameters:
      function - The function builder used to custom score
    • functionScoreQuery

      public static FunctionScoreQueryBuilder functionScoreQuery(QueryBuilder queryBuilder, ScoreFunctionBuilder function)
      A query that allows to define a custom scoring function.
      Parameters:
      queryBuilder - The query to custom score
      function - The function builder used to custom score
    • scriptScoreQuery

      public static ScriptScoreQueryBuilder scriptScoreQuery(QueryBuilder queryBuilder, Script script)
      A query that allows to define a custom scoring function through script.
      Parameters:
      queryBuilder - The query to custom score
      script - The script used to score the query
    • moreLikeThisQuery

      public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] fields, String[] likeTexts, MoreLikeThisQueryBuilder.Item[] likeItems)
      A more like this query that finds documents that are "like" the provided texts or documents which is checked against the fields the query is constructed with.
      Parameters:
      fields - the field names that will be used when generating the 'More Like This' query.
      likeTexts - the text to use when generating the 'More Like This' query.
      likeItems - the documents to use when generating the 'More Like This' query.
    • moreLikeThisQuery

      public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts, MoreLikeThisQueryBuilder.Item[] likeItems)
      A more like this query that finds documents that are "like" the provided texts or documents which is checked against the "_all" field.
      Parameters:
      likeTexts - the text to use when generating the 'More Like This' query.
      likeItems - the documents to use when generating the 'More Like This' query.
    • moreLikeThisQuery

      public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts)
      A more like this query that finds documents that are "like" the provided texts which is checked against the "_all" field.
      Parameters:
      likeTexts - the text to use when generating the 'More Like This' query.
    • moreLikeThisQuery

      public static MoreLikeThisQueryBuilder moreLikeThisQuery(MoreLikeThisQueryBuilder.Item[] likeItems)
      A more like this query that finds documents that are "like" the provided documents which is checked against the "_all" field.
      Parameters:
      likeItems - the documents to use when generating the 'More Like This' query.
    • nestedQuery

      public static NestedQueryBuilder nestedQuery(String path, QueryBuilder query, org.apache.lucene.search.join.ScoreMode scoreMode)
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, String... values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, int... values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, long... values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, float... values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, double... values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, Object... values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • termsQuery

      public static TermsQueryBuilder termsQuery(String name, Collection<?> values)
      A filter for a field based on several terms matching on any of them.
      Parameters:
      name - The field name
      values - The terms
    • wrapperQuery

      public static WrapperQueryBuilder wrapperQuery(String source)
      A Query builder which allows building a query thanks to a JSON string or binary data.
    • wrapperQuery

      public static WrapperQueryBuilder wrapperQuery(BytesReference source)
      A Query builder which allows building a query thanks to a JSON string or binary data.
    • wrapperQuery

      public static WrapperQueryBuilder wrapperQuery(byte[] source)
      A Query builder which allows building a query thanks to a JSON string or binary data.
    • typeQuery

      @Deprecated public static TypeQueryBuilder typeQuery(String type)
      Deprecated.
      Types are going away, prefer filtering on a field.
      A filter based on doc/mapping type.
    • termsLookupQuery

      public static TermsQueryBuilder termsLookupQuery(String name, TermsLookup termsLookup)
      A terms query that can extract the terms from another doc in an index.
    • scriptQuery

      public static ScriptQueryBuilder scriptQuery(Script script)
      A builder for filter based on a script.
      Parameters:
      script - The script to filter by.
    • geoDistanceQuery

      public static GeoDistanceQueryBuilder geoDistanceQuery(String name)
      A filter to filter based on a specific distance from a specific geo location / point.
      Parameters:
      name - The location field name.
    • geoBoundingBoxQuery

      public static GeoBoundingBoxQueryBuilder geoBoundingBoxQuery(String name)
      A filter to filter based on a bounding box defined by top left and bottom right locations / points
      Parameters:
      name - The location field name.
    • geoPolygonQuery

      @Deprecated public static GeoPolygonQueryBuilder geoPolygonQuery(String name, List<GeoPoint> points)
      A filter to filter based on a polygon defined by a set of locations / points.
      Parameters:
      name - The location field name.
    • geoShapeQuery

      public static GeoShapeQueryBuilder geoShapeQuery(String name, org.elasticsearch.geometry.Geometry shape) throws IOException
      A filter based on the relationship of a shape and indexed shapes
      Parameters:
      name - The shape field name
      shape - Shape to use in the filter
      Throws:
      IOException
    • geoShapeQuery

      @Deprecated public static GeoShapeQueryBuilder geoShapeQuery(String name, ShapeBuilder shape) throws IOException
      Deprecated.
      Throws:
      IOException
    • geoShapeQuery

      public static GeoShapeQueryBuilder geoShapeQuery(String name, String indexedShapeId)
    • geoShapeQuery

      @Deprecated public static GeoShapeQueryBuilder geoShapeQuery(String name, String indexedShapeId, String indexedShapeType)
      Deprecated.
      Types are in the process of being removed, use geoShapeQuery(String, String) instead.
    • geoIntersectionQuery

      public static GeoShapeQueryBuilder geoIntersectionQuery(String name, org.elasticsearch.geometry.Geometry shape) throws IOException
      A filter to filter indexed shapes intersecting with shapes
      Parameters:
      name - The shape field name
      shape - Shape to use in the filter
      Throws:
      IOException
    • geoIntersectionQuery

      @Deprecated public static GeoShapeQueryBuilder geoIntersectionQuery(String name, ShapeBuilder shape) throws IOException
      Throws:
      IOException
    • geoIntersectionQuery

      public static GeoShapeQueryBuilder geoIntersectionQuery(String name, String indexedShapeId)
    • geoIntersectionQuery

      @Deprecated public static GeoShapeQueryBuilder geoIntersectionQuery(String name, String indexedShapeId, String indexedShapeType)
      Deprecated.
      Types are in the process of being removed, use geoIntersectionQuery(String, String) instead.
    • geoWithinQuery

      public static GeoShapeQueryBuilder geoWithinQuery(String name, org.elasticsearch.geometry.Geometry shape) throws IOException
      A filter to filter indexed shapes that are contained by a shape
      Parameters:
      name - The shape field name
      shape - Shape to use in the filter
      Throws:
      IOException
    • geoWithinQuery

      @Deprecated public static GeoShapeQueryBuilder geoWithinQuery(String name, ShapeBuilder shape) throws IOException
      Deprecated.
      Throws:
      IOException
    • geoWithinQuery

      public static GeoShapeQueryBuilder geoWithinQuery(String name, String indexedShapeId)
    • geoWithinQuery

      @Deprecated public static GeoShapeQueryBuilder geoWithinQuery(String name, String indexedShapeId, String indexedShapeType)
      Deprecated.
      Types are in the process of being removed, use geoWithinQuery(String, String) instead.
    • geoDisjointQuery

      public static GeoShapeQueryBuilder geoDisjointQuery(String name, org.elasticsearch.geometry.Geometry shape) throws IOException
      A filter to filter indexed shapes that are not intersection with the query shape
      Parameters:
      name - The shape field name
      shape - Shape to use in the filter
      Throws:
      IOException
    • geoDisjointQuery

      @Deprecated public static GeoShapeQueryBuilder geoDisjointQuery(String name, ShapeBuilder shape) throws IOException
      Deprecated.
      Throws:
      IOException
    • geoDisjointQuery

      public static GeoShapeQueryBuilder geoDisjointQuery(String name, String indexedShapeId)
    • geoDisjointQuery

      @Deprecated public static GeoShapeQueryBuilder geoDisjointQuery(String name, String indexedShapeId, String indexedShapeType)
      Deprecated.
      Types are in the process of being removed, use geoDisjointQuery(String, String) instead.
    • existsQuery

      public static ExistsQueryBuilder existsQuery(String name)
      A filter to filter only documents where a field exists in them.
      Parameters:
      name - The name of the field