public class QueryBuilder extends Object
Analyzer
chain.
Example usage:
QueryBuilder builder = new QueryBuilder(analyzer); Query a = builder.createBooleanQuery("body", "just a test"); Query b = builder.createPhraseQuery("body", "another test"); Query c = builder.createMinShouldMatchQuery("body", "another test", 0.5f);
This can also be used as a subclass for query parsers to make it easier
to interact with the analysis chain. Factory methods such as newTermQuery
are provided so that the generated queries can be customized.
Constructor and Description |
---|
QueryBuilder(Analyzer analyzer)
Creates a new QueryBuilder using the given analyzer.
|
Modifier and Type | Method and Description |
---|---|
Query |
createBooleanQuery(String field,
String queryText)
Creates a boolean query from the query text.
|
Query |
createBooleanQuery(String field,
String queryText,
BooleanClause.Occur operator)
Creates a boolean query from the query text.
|
protected Query |
createFieldQuery(Analyzer analyzer,
BooleanClause.Occur operator,
String field,
String queryText,
boolean quoted,
int phraseSlop)
Creates a query from the analysis chain.
|
Query |
createMinShouldMatchQuery(String field,
String queryText,
float fraction)
Creates a minimum-should-match query from the query text.
|
Query |
createPhraseQuery(String field,
String queryText)
Creates a phrase query from the query text.
|
Query |
createPhraseQuery(String field,
String queryText,
int phraseSlop)
Creates a phrase query from the query text.
|
Analyzer |
getAnalyzer()
Returns the analyzer.
|
boolean |
getEnablePositionIncrements()
Returns true if position increments are enabled.
|
protected BooleanQuery |
newBooleanQuery(boolean disableCoord)
Builds a new BooleanQuery instance.
|
protected MultiPhraseQuery |
newMultiPhraseQuery()
Builds a new MultiPhraseQuery instance.
|
protected PhraseQuery |
newPhraseQuery()
Builds a new PhraseQuery instance.
|
protected Query |
newTermQuery(Term term)
Builds a new TermQuery instance.
|
void |
setAnalyzer(Analyzer analyzer)
Sets the analyzer used to tokenize text.
|
void |
setEnablePositionIncrements(boolean enable)
Set to
true to enable position increments in result query. |
public QueryBuilder(Analyzer analyzer)
public Query createBooleanQuery(String field, String queryText)
This is equivalent to createBooleanQuery(field, queryText, Occur.SHOULD)
field
- field namequeryText
- text to be passed to the analyzerTermQuery
or BooleanQuery
, based on the analysis
of queryText
public Query createBooleanQuery(String field, String queryText, BooleanClause.Occur operator)
field
- field namequeryText
- text to be passed to the analyzeroperator
- operator used for clauses between analyzer tokens.TermQuery
or BooleanQuery
, based on the analysis
of queryText
public Query createPhraseQuery(String field, String queryText)
This is equivalent to createPhraseQuery(field, queryText, 0)
field
- field namequeryText
- text to be passed to the analyzerTermQuery
, BooleanQuery
, PhraseQuery
, or
MultiPhraseQuery
, based on the analysis of queryText
public Query createPhraseQuery(String field, String queryText, int phraseSlop)
field
- field namequeryText
- text to be passed to the analyzerphraseSlop
- number of other words permitted between words in query phraseTermQuery
, BooleanQuery
, PhraseQuery
, or
MultiPhraseQuery
, based on the analysis of queryText
public Query createMinShouldMatchQuery(String field, String queryText, float fraction)
field
- field namequeryText
- text to be passed to the analyzerfraction
- of query terms [0..1]
that should matchTermQuery
or BooleanQuery
, based on the analysis
of queryText
public Analyzer getAnalyzer()
setAnalyzer(Analyzer)
public void setAnalyzer(Analyzer analyzer)
public boolean getEnablePositionIncrements()
setEnablePositionIncrements(boolean)
public void setEnablePositionIncrements(boolean enable)
true
to enable position increments in result query.
When set, result phrase and multi-phrase queries will be aware of position increments. Useful when e.g. a StopFilter increases the position increment of the token that follows an omitted token.
Default: true.
protected final Query createFieldQuery(Analyzer analyzer, BooleanClause.Occur operator, String field, String queryText, boolean quoted, int phraseSlop)
Expert: this is more useful for subclasses such as queryparsers.
If using this class directly, just use createBooleanQuery(String, String)
and createPhraseQuery(String, String)
analyzer
- analyzer used for this queryoperator
- default boolean operator used for this queryfield
- field to create queries againstqueryText
- text to be passed to the analysis chainquoted
- true if phrases should be generated when terms occur at more than one positionphraseSlop
- slop factor for phrase/multiphrase queriesprotected BooleanQuery newBooleanQuery(boolean disableCoord)
This is intended for subclasses that wish to customize the generated queries.
disableCoord
- disable coordprotected Query newTermQuery(Term term)
This is intended for subclasses that wish to customize the generated queries.
term
- termprotected PhraseQuery newPhraseQuery()
This is intended for subclasses that wish to customize the generated queries.
protected MultiPhraseQuery newMultiPhraseQuery()
This is intended for subclasses that wish to customize the generated queries.
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.