org.apache.lucene.queryparser.flexible.standard

## Class QueryParserUtil

- java.lang.Object
- - org.apache.lucene.queryparser.flexible.standard.QueryParserUtil

-     public final class QueryParserUtil
      extends Object

  This class defines utility methods to (help) parse query strings into `Query` objects.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `QueryParserUtil()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `escape(String s)` Returns a String where those characters that TextParser expects to be escaped are escaped by a preceding `\`.
    `static Query` | `parse(String[] queries, String[] fields, Analyzer analyzer)` Parses a query which searches on the fields specified.
    `static Query` | `parse(String[] queries, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer)` Parses a query, searching on the fields specified.
    `static Query` | `parse(String query, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer)` Parses a query, searching on the fields specified.

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

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

- - ### Constructor Detail

    - #### QueryParserUtil

          public QueryParserUtil()

  - ### Method Detail

    - #### parse

          public static Query parse(String[] queries,
                                    String[] fields,
                                    Analyzer analyzer)
                             throws QueryNodeException

      Parses a query which searches on the fields specified.

      If x fields are specified, this effectively constructs:

           (field1:query1) (field2:query2) (field3:query3)...(fieldx:queryx)

      Parameters:
        `queries` - Queries strings to parse
        `fields` - Fields to search on
        `analyzer` - Analyzer to use
      Throws:
        `IllegalArgumentException` - if the length of the queries array differs from the length of the fields array
        `QueryNodeException`

    - #### parse

          public static Query parse(String query,
                                    String[] fields,
                                    BooleanClause.Occur[] flags,
                                    Analyzer analyzer)
                             throws QueryNodeException

      Parses a query, searching on the fields specified. Use this if you need to specify certain fields as required, and others as prohibited.

      Usage:

           String[] fields = {"filename", "contents", "description"};
           BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
                          BooleanClause.Occur.MUST,
                          BooleanClause.Occur.MUST_NOT};
           MultiFieldQueryParser.parse("query", fields, flags, analyzer);

      The code above would construct a query:

           (filename:query) +(contents:query) -(description:query)

      Parameters:
        `query` - Query string to parse
        `fields` - Fields to search on
        `flags` - Flags describing the fields
        `analyzer` - Analyzer to use
      Throws:
        `IllegalArgumentException` - if the length of the fields array differs from the length of the flags array
        `QueryNodeException`

    - #### parse

          public static Query parse(String[] queries,
                                    String[] fields,
                                    BooleanClause.Occur[] flags,
                                    Analyzer analyzer)
                             throws QueryNodeException

      Parses a query, searching on the fields specified. Use this if you need to specify certain fields as required, and others as prohibited.

      Usage:

           String[] query = {"query1", "query2", "query3"};
           String[] fields = {"filename", "contents", "description"};
           BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
                          BooleanClause.Occur.MUST,
                          BooleanClause.Occur.MUST_NOT};
           MultiFieldQueryParser.parse(query, fields, flags, analyzer);

      The code above would construct a query:

           (filename:query1) +(contents:query2) -(description:query3)

      Parameters:
        `queries` - Queries string to parse
        `fields` - Fields to search on
        `flags` - Flags describing the fields
        `analyzer` - Analyzer to use
      Throws:
        `IllegalArgumentException` - if the length of the queries, fields, and flags array differ
        `QueryNodeException`

    - #### escape

          public static String escape(String s)

      Returns a String where those characters that TextParser expects to be escaped are escaped by a preceding `\`.

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