QueryParserUtil (Lucene 10.5.1 queryparser API)
Description: declaration: package: org.apache.lucene.queryparser.flexible.standard, class: QueryParserUtil

Package 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
  Description
  `QueryParserUtil()`

- ## Method Summary

  Modifier and Type
  Method
  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 Details

  - ### QueryParserUtil

    public QueryParserUtil()

- ## Method Details

  - ### 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 `\`.