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

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