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.
|
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.
|
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.
Copyright © 2010 - 2020 Adobe. All Rights Reserved