Class QueryBuilders


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

      • 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).
      • 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).
      • 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.
      • 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.
      • 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
      • 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 ?.
        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
      • 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.
      • 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.
      • 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
      • 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.
      • 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
      • termsLookupQuery

        public static TermsQueryBuilder termsLookupQuery​(String name,
                                                         TermsLookup termsLookup)
        A terms query that can extract the terms from another doc in an index.
      • 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