| java.lang.Object org.apache.lucene.queryParser.QueryParser org.apache.lucene.queryParser.MultiFieldQueryParser
MultiFieldQueryParser | public class MultiFieldQueryParser extends QueryParser (Code) | | A QueryParser which constructs queries to search multiple fields.
version: $Revision: 564236 $ |
Method Summary | |
protected Query | getFieldQuery(String field, String queryText, int slop) | protected Query | getFieldQuery(String field, String queryText) | protected Query | getFuzzyQuery(String field, String termStr, float minSimilarity) | protected Query | getPrefixQuery(String field, String termStr) | protected Query | getRangeQuery(String field, String part1, String part2, boolean inclusive) | protected Query | getWildcardQuery(String field, String termStr) | public static Query | parse(String[] queries, String[] fields, Analyzer analyzer) Parses a query which searches on the fields specified. | public static Query | parse(String query, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer) Parses a query, searching on the fields specified. | public static Query | parse(String[] queries, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer) Parses a query, searching on the fields specified. |
MultiFieldQueryParser | public MultiFieldQueryParser(String[] fields, Analyzer analyzer, Map boosts)(Code) | | Creates a MultiFieldQueryParser.
Allows passing of a map with term to Boost, and the boost to apply to each term.
It will, when parse(String query)
is called, construct a query like this (assuming the query consists of
two terms and you specify the two fields title and body ):
(title:term1 body:term1) (title:term2 body:term2)
When setDefaultOperator(AND_OPERATOR) is set, the result will be:
+(title:term1 body:term1) +(title:term2 body:term2)
When you pass a boost (title=>5 body=>10) you can get
+(title:term1^5.0 body:term1^10.0) +(title:term2^5.0 body:term2^10.0)
In other words, all the query's terms must appear, but it doesn't matter in
what fields they appear.
|
MultiFieldQueryParser | public MultiFieldQueryParser(String[] fields, Analyzer analyzer)(Code) | | Creates a MultiFieldQueryParser.
It will, when parse(String query)
is called, construct a query like this (assuming the query consists of
two terms and you specify the two fields title and body ):
(title:term1 body:term1) (title:term2 body:term2)
When setDefaultOperator(AND_OPERATOR) is set, the result will be:
+(title:term1 body:term1) +(title:term2 body:term2)
In other words, all the query's terms must appear, but it doesn't matter in
what fields they appear.
|
parse | public static Query parse(String[] queries, String[] fields, Analyzer analyzer) throws ParseException(Code) | | 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 Parameters: fields - Fields to search on Parameters: analyzer - Analyzer to use throws: ParseException - if query parsing fails throws: IllegalArgumentException - if the length of the queries array differsfrom the length of the fields array |
parse | public static Query parse(String query, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer) throws ParseException(Code) | | 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 Parameters: fields - Fields to search on Parameters: flags - Flags describing the fields Parameters: analyzer - Analyzer to use throws: ParseException - if query parsing fails throws: IllegalArgumentException - if the length of the fields array differsfrom the length of the flags array |
parse | public static Query parse(String[] queries, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer) throws ParseException(Code) | | 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 Parameters: fields - Fields to search on Parameters: flags - Flags describing the fields Parameters: analyzer - Analyzer to use throws: ParseException - if query parsing fails throws: IllegalArgumentException - if the length of the queries, fields,and flags array differ |
Methods inherited from org.apache.lucene.queryParser.QueryParser | final public Query Clause(String field) throws ParseException(Code)(Java Doc) final public int Conjunction() throws ParseException(Code)(Java Doc) final public int Modifiers() throws ParseException(Code)(Java Doc) final public Query Query(String field) throws ParseException(Code)(Java Doc) public void ReInit(CharStream stream)(Code)(Java Doc) public void ReInit(QueryParserTokenManager tm)(Code)(Java Doc) final public Query Term(String field) throws ParseException(Code)(Java Doc) final public Query TopLevelQuery(String field) throws ParseException(Code)(Java Doc) protected void addClause(Vector clauses, int conj, int mods, Query q)(Code)(Java Doc) final public void disable_tracing()(Code)(Java Doc) final public void enable_tracing()(Code)(Java Doc) public static String escape(String s)(Code)(Java Doc) public ParseException generateParseException()(Code)(Java Doc) public boolean getAllowLeadingWildcard()(Code)(Java Doc) public Analyzer getAnalyzer()(Code)(Java Doc) protected Query getBooleanQuery(Vector clauses) throws ParseException(Code)(Java Doc) protected Query getBooleanQuery(Vector clauses, boolean disableCoord) throws ParseException(Code)(Java Doc) public DateTools.Resolution getDateResolution(String fieldName)(Code)(Java Doc) public Operator getDefaultOperator()(Code)(Java Doc) public boolean getEnablePositionIncrements()(Code)(Java Doc) public String getField()(Code)(Java Doc) protected Query getFieldQuery(String field, String queryText) throws ParseException(Code)(Java Doc) protected Query getFieldQuery(String field, String queryText, int slop) throws ParseException(Code)(Java Doc) public float getFuzzyMinSim()(Code)(Java Doc) public int getFuzzyPrefixLength()(Code)(Java Doc) protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException(Code)(Java Doc) public Locale getLocale()(Code)(Java Doc) public boolean getLowercaseExpandedTerms()(Code)(Java Doc) final public Token getNextToken()(Code)(Java Doc) public int getPhraseSlop()(Code)(Java Doc) protected Query getPrefixQuery(String field, String termStr) throws ParseException(Code)(Java Doc) protected Query getRangeQuery(String field, String part1, String part2, boolean inclusive) throws ParseException(Code)(Java Doc) final public Token getToken(int index)(Code)(Java Doc) public boolean getUseOldRangeQuery()(Code)(Java Doc) protected Query getWildcardQuery(String field, String termStr) throws ParseException(Code)(Java Doc) public static void main(String[] args) throws Exception(Code)(Java Doc) public Query parse(String query) throws ParseException(Code)(Java Doc) public void setAllowLeadingWildcard(boolean allowLeadingWildcard)(Code)(Java Doc) public void setDateResolution(DateTools.Resolution dateResolution)(Code)(Java Doc) public void setDateResolution(String fieldName, DateTools.Resolution dateResolution)(Code)(Java Doc) public void setDefaultOperator(Operator op)(Code)(Java Doc) public void setEnablePositionIncrements(boolean enable)(Code)(Java Doc) public void setFuzzyMinSim(float fuzzyMinSim)(Code)(Java Doc) public void setFuzzyPrefixLength(int fuzzyPrefixLength)(Code)(Java Doc) public void setLocale(Locale locale)(Code)(Java Doc) public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms)(Code)(Java Doc) public void setPhraseSlop(int phraseSlop)(Code)(Java Doc) public void setUseOldRangeQuery(boolean useOldRangeQuery)(Code)(Java Doc)
|
|
|