Class BoostQuery

  • All Implemented Interfaces:
    QueryParameters, LocaleAware, java.io.Serializable, java.lang.Cloneable

    public final class BoostQuery
    extends Query
    Query operator that will apply a boost query to a search query.

    The boost query will not impact the documents that match this query, it will only be used to boost the score of documents that match both the boost query and the search query.

    See Also:
    Serialized Form
    • Method Detail

      • setParameter

        public void setParameter​(java.lang.String name,
                                 java.lang.Object value)
        Overrides:
        setParameter in class Query
      • getBoostQuery

        public Query getBoostQuery()
        Get the boost query.
      • setBoostQuery

        public void setBoostQuery​(Query value)
        Set the boost query.
      • setBoostQuery

        public void setBoostQuery​(java.util.List<Query> value)
        Set the boost query.
      • getScoreFunctions

        public FieldExpression[] getScoreFunctions()
        Get the ScoreFunctions to use for boosting AbstractFilterQuery.getQuery().
      • setScoreFunctions

        public void setScoreFunctions​(java.util.List<FieldExpression> value)
        Set the ScoreFunctions to use for boosting AbstractFilterQuery.getQuery().
      • setScoreFunctions

        public void setScoreFunctions​(FieldExpression... value)
        Set the ScoreFunctions to use for boosting AbstractFilterQuery.getQuery().
      • addScoreFunction

        public void addScoreFunction​(FieldExpression value)
        Add a ScoreFunction to this BoostQuery.
      • getMethod

        public BoostQuery.Method getMethod()
        Get the method for applying boosts to the search query's score.
      • setMethod

        public void setMethod​(BoostQuery.Method method)
        Set the method for applying boosts to the search query's score.
      • getFirstNode

        public Query getFirstNode​(QueryHandler selector)
        Get the first query in the tree that has parameter set to value.

        WARNING: this is an experimental API and may change in the near future.

        Returns:
        the first query in the query tree that matches selector, or null if no match found.
      • getNodes

        protected void getNodes​(java.util.List<Query> nodes,
                                QueryHandler selector)
        Internal method to collect all nodes that have parameter set to value .
      • rewrite

        public Query rewrite​(QueryHandler handler)
        Recursively rewrite this query using handler.
      • rewriteChildren

        public void rewriteChildren​(QueryHandler handler)
        Rewrite child nodes using handler.
      • optimize

        public Query optimize()
        Optimizes this query object, removing unnecessary levels of expressions.
        Returns:
        an optimized form of this Query, or null if this Query is a no-op
      • toString

        protected void toString​(java.lang.StringBuilder buffer,
                                boolean compact)
        Write the String representation of this query to buffer.
      • prettyFormat

        protected void prettyFormat​(java.lang.StringBuilder buffer,
                                    int indent)
        Pretty format all parameters for this Query instance.
        Parameters:
        buffer - buffer to write pretty formated parameters to.
        indent - the indentation level
      • hashCode

        public int hashCode()
      • equals

        protected boolean equals​(java.lang.Object other,
                                 java.util.Map<java.lang.String,​java.lang.Object> defaults,
                                 java.util.Set<java.lang.String> ignore)
        Checks whether query equals this Query object.
        Parameters:
        other - the query to compare to
        defaults - map of default values for query parameters
        ignore - set of query parameters to ignore during equality check.
        Returns:
        true if other is equal to this Query
      • clone

        public BoostQuery clone()
        Returns a deep copy of this Query instance.

        NOTE: values for parameters are shallow copied.

        Returns:
        a copy of this Query.
      • isAllowNull

        protected boolean isAllowNull()
        Are null sub queries allowed.
      • getQuery

        public Query getQuery()
        Get the search query.
      • setQuery

        public void setQuery​(Query value)
        Set the search query.
      • setQuery

        public void setQuery​(java.lang.String term)
        Set the search query to be a search for term.
      • parameters

        public java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Object>> parameters()
        Get an iterator for returning all custom parameters.
      • containsParameter

        public boolean containsParameter​(java.lang.String name)
        Returns true if the specified parameter exists for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        true if the specified parameter exists.
      • getParameter

        public final java.lang.Object getParameter​(java.lang.String name)
        Returns a named property for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        the value for the named property (or null if not found)
      • getParameterList

        public final java.util.List<java.lang.Object> getParameterList​(java.lang.String name)
        Returns list of values found for the named property for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        list, which might be empty (but we never return null)
      • getParameter

        public final java.lang.String getParameter​(java.lang.String name,
                                                   java.lang.String defaultValue)
        Gets a String parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final boolean getParameter​(java.lang.String name,
                                          boolean defaultValue)
        Gets a boolean parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final int getParameter​(java.lang.String name,
                                      int defaultValue)
        Gets an integer parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final long getParameter​(java.lang.String name,
                                       long defaultValue)
        Gets a long parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final float getParameter​(java.lang.String name,
                                        float defaultValue)
        Gets a float parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final double getParameter​(java.lang.String name,
                                         double defaultValue)
        Gets a double parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public java.lang.Object getParameter​(java.lang.String name,
                                             java.lang.Object defaultValue)
        Gets a parameter.
        Parameters:
        name - name of parameter to return.
        defaultValue - default value to return if not set.
      • setParameters

        public final void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> value)
      • setParameters

        public void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> params,
                                  boolean override)
        Copies parameters from a Map into this Query.
        Parameters:
        params - the parameters to copy into this Query instance.
        override - indicates if parameters from params should overwrite existing parameters in this Query
      • parseIntParameter

        protected static int parseIntParameter​(java.lang.Object value,
                                               int defaultValue)
      • removeParameter

        public java.lang.Object removeParameter​(java.lang.String name)
        Remove the value for a parameter for this Query object.
        Parameters:
        name - the parameter to remove.
      • setEnumParameter

        protected final void setEnumParameter​(java.lang.String key,
                                              java.lang.Object value,
                                              java.lang.String... enumValues)
        Internal method for setting an object parameter.

        NOTE: enumValues must contain lower case strings.

      • setStringParameter

        protected final void setStringParameter​(java.lang.String key,
                                                java.lang.Object value)
        Internal method for setting a string parameter.
      • setIntegerParameter

        protected final void setIntegerParameter​(java.lang.String key,
                                                 java.lang.Object value)
        Internal method for setting an integer parameter.
      • setUnsignedParameter

        protected final void setUnsignedParameter​(java.lang.String key,
                                                  java.lang.Object value)
        Internal method for setting an integer parameter.
      • setBooleanParameter

        protected final void setBooleanParameter​(java.lang.String key,
                                                 java.lang.Object value)
        Internal method for setting a boolean parameter.
      • setRollupParameter

        protected final void setRollupParameter​(java.lang.String key,
                                                java.lang.Object value)
      • appendParameter

        protected static void appendParameter​(java.lang.StringBuilder buffer,
                                              java.lang.String name,
                                              java.lang.Object value)
        Add ", \"name\"=\"value\"" to buffer.
      • addParameter

        protected static void addParameter​(java.lang.StringBuilder buffer,
                                           java.lang.String name,
                                           java.lang.Object value)
        Add "\"name\"=\"value\"" to buffer.
      • addParameterCompact

        protected static void addParameterCompact​(java.lang.StringBuilder buffer,
                                                  java.lang.String name,
                                                  java.lang.Object value)
        Add "\"name\"=\"value\"" to buffer, omitting value if it is Boolean.TRUE.
      • escape

        protected static void escape​(java.lang.StringBuilder buffer,
                                     java.lang.Object value)
      • escape

        protected void escape​(java.lang.StringBuilder buffer,
                              java.lang.String value,
                              boolean quote)
        Helper method to escape a string for toString() .
        Parameters:
        buffer - buffer to write escaped value to
        value - the value to escape
        quote - if true, escaped value will be wrapped in double quotes.
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public final java.lang.String toString​(boolean compact)
      • prettyPrint

        public final void prettyPrint()
        Sends a hierarchical representation of this query to standard out.
      • prettyPrint

        public final void prettyPrint​(java.io.PrintStream out)
        Sends a hierarchical representation of this query specified PrintStream.
        Parameters:
        out - stream to output query representation to
      • prettyFormat

        public final java.lang.String prettyFormat()
        Returns a hierarchical representation of this query as a string.
      • indent

        protected static java.lang.StringBuilder indent​(java.lang.StringBuilder buffer,
                                                        int indent)
        Support method to indent a "line" in a StringBuilder.