org.apache.lucene.util

## Class QueryBuilder

- java.lang.Object
- - org.apache.lucene.util.QueryBuilder

-     public class QueryBuilder
      extends Object

  Creates queries from the `Analyzer` chain.

  Example usage:

         QueryBuilder builder = new QueryBuilder(analyzer);
         Query a = builder.createBooleanQuery("body", "just a test");
         Query b = builder.createPhraseQuery("body", "another test");
         Query c = builder.createMinShouldMatchQuery("body", "another test", 0.5f);

  This can also be used as a subclass for query parsers to make it easier to interact with the analysis chain. Factory methods such as `newTermQuery` are provided so that the generated queries can be customized.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `QueryBuilder(Analyzer analyzer)` Creates a new QueryBuilder using the given analyzer.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Query` | `createBooleanQuery(String field, String queryText)` Creates a boolean query from the query text.
    `Query` | `createBooleanQuery(String field, String queryText, BooleanClause.Occur operator)` Creates a boolean query from the query text.
    `protected Query` | `createFieldQuery(Analyzer analyzer, BooleanClause.Occur operator, String field, String queryText, boolean quoted, int phraseSlop)` Creates a query from the analysis chain.
    `Query` | `createMinShouldMatchQuery(String field, String queryText, float fraction)` Creates a minimum-should-match query from the query text.
    `Query` | `createPhraseQuery(String field, String queryText)` Creates a phrase query from the query text.
    `Query` | `createPhraseQuery(String field, String queryText, int phraseSlop)` Creates a phrase query from the query text.
    `Analyzer` | `getAnalyzer()` Returns the analyzer.
    `boolean` | `getEnablePositionIncrements()` Returns true if position increments are enabled.
    `protected BooleanQuery.Builder` | `newBooleanQuery(boolean disableCoord)` Builds a new BooleanQuery instance.
    `protected MultiPhraseQuery` | `newMultiPhraseQuery()` Builds a new MultiPhraseQuery instance.
    `protected Query` | `newTermQuery(Term term)` Builds a new TermQuery instance.
    `void` | `setAnalyzer(Analyzer analyzer)` Sets the analyzer used to tokenize text.
    `void` | `setEnablePositionIncrements(boolean enable)` Set to `true` to enable position increments in result query.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### QueryBuilder

          public QueryBuilder(Analyzer analyzer)

      Creates a new QueryBuilder using the given analyzer.

  - ### Method Detail

    - #### createBooleanQuery

          public Query createBooleanQuery(String field,
                                 String queryText)

      Creates a boolean query from the query text.

      This is equivalent to `createBooleanQuery(field, queryText, Occur.SHOULD)`

      Parameters:
        `field` - field name
        `queryText` - text to be passed to the analyzer
      Returns:
        `TermQuery` or `BooleanQuery`, based on the analysis of `queryText`

    - #### createBooleanQuery

          public Query createBooleanQuery(String field,
                                 String queryText,
                                 BooleanClause.Occur operator)

      Creates a boolean query from the query text.

      Parameters:
        `field` - field name
        `queryText` - text to be passed to the analyzer
        `operator` - operator used for clauses between analyzer tokens.
      Returns:
        `TermQuery` or `BooleanQuery`, based on the analysis of `queryText`

    - #### createPhraseQuery

          public Query createPhraseQuery(String field,
                                String queryText)

      Creates a phrase query from the query text.

      This is equivalent to `createPhraseQuery(field, queryText, 0)`

      Parameters:
        `field` - field name
        `queryText` - text to be passed to the analyzer
      Returns:
        `TermQuery`, `BooleanQuery`, `PhraseQuery`, or `MultiPhraseQuery`, based on the analysis of `queryText`

    - #### createPhraseQuery

          public Query createPhraseQuery(String field,
                                String queryText,
                                int phraseSlop)

      Creates a phrase query from the query text.

      Parameters:
        `field` - field name
        `queryText` - text to be passed to the analyzer
        `phraseSlop` - number of other words permitted between words in query phrase
      Returns:
        `TermQuery`, `BooleanQuery`, `PhraseQuery`, or `MultiPhraseQuery`, based on the analysis of `queryText`

    - #### createMinShouldMatchQuery

          public Query createMinShouldMatchQuery(String field,
                                        String queryText,
                                        float fraction)

      Creates a minimum-should-match query from the query text.

      Parameters:
        `field` - field name
        `queryText` - text to be passed to the analyzer
        `fraction` - of query terms `[0..1]` that should match
      Returns:
        `TermQuery` or `BooleanQuery`, based on the analysis of `queryText`

    - #### getAnalyzer

          public Analyzer getAnalyzer()

      Returns the analyzer.
      See Also:
        `setAnalyzer(Analyzer)`

    - #### setAnalyzer

          public void setAnalyzer(Analyzer analyzer)

      Sets the analyzer used to tokenize text.

    - #### getEnablePositionIncrements

          public boolean getEnablePositionIncrements()

      Returns true if position increments are enabled.
      See Also:
        `setEnablePositionIncrements(boolean)`

    - #### setEnablePositionIncrements

          public void setEnablePositionIncrements(boolean enable)

      Set to `true` to enable position increments in result query.

      When set, result phrase and multi-phrase queries will be aware of position increments. Useful when e.g. a StopFilter increases the position increment of the token that follows an omitted token.

      Default: true.

    - #### createFieldQuery

          protected final Query createFieldQuery(Analyzer analyzer,
                               BooleanClause.Occur operator,
                               String field,
                               String queryText,
                               boolean quoted,
                               int phraseSlop)

      Creates a query from the analysis chain.

      Expert: this is more useful for subclasses such as queryparsers. If using this class directly, just use `createBooleanQuery(String, String)` and `createPhraseQuery(String, String)`

      Parameters:
        `analyzer` - analyzer used for this query
        `operator` - default boolean operator used for this query
        `field` - field to create queries against
        `queryText` - text to be passed to the analysis chain
        `quoted` - true if phrases should be generated when terms occur at more than one position
        `phraseSlop` - slop factor for phrase/multiphrase queries

    - #### newBooleanQuery

          protected BooleanQuery.Builder newBooleanQuery(boolean disableCoord)

      Builds a new BooleanQuery instance.

      This is intended for subclasses that wish to customize the generated queries.

      Parameters:
        `disableCoord` - disable coord
      Returns:
        new BooleanQuery instance

    - #### newTermQuery

          protected Query newTermQuery(Term term)

      Builds a new TermQuery instance.

      This is intended for subclasses that wish to customize the generated queries.

      Parameters:
        `term` - term
      Returns:
        new TermQuery instance

    - #### newMultiPhraseQuery

          protected MultiPhraseQuery newMultiPhraseQuery()

      Builds a new MultiPhraseQuery instance.

      This is intended for subclasses that wish to customize the generated queries.

      Returns:
        new MultiPhraseQuery instance

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.