org.apache.lucene.queryParser.standard
Class QueryParserUtil

java.lang.Object
  extended by org.apache.lucene.queryParser.standard.QueryParserUtil

public final class QueryParserUtil
extends Object

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


Constructor Summary
QueryParserUtil()
           
 
Method Summary
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:

 <code>
 (field1:query1) (field2:query2) (field3:query3)...(fieldx:queryx)
 </code>
 

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:
 <code>
 String[] fields = {"filename", "contents", "description"};
 BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
                BooleanClause.Occur.MUST,
                BooleanClause.Occur.MUST_NOT};
 MultiFieldQueryParser.parse("query", fields, flags, analyzer);
 </code>
 

The code above would construct a query:

 <code>
 (filename:query) +(contents:query) -(description:query)
 </code>
 

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:
 <code>
 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);
 </code>
 

The code above would construct a query:

 <code>
 (filename:query1) +(contents:query2) -(description:query3)
 </code>
 

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