|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.queryParser.QueryParser org.apache.lucene.queryParser.ext.ExtendableQueryParser
public class ExtendableQueryParser
The ExtendableQueryParser
enables arbitrary query parser extension
based on a customizable field naming scheme. The lucene query syntax allows
implicit and explicit field definitions as query prefix followed by a colon
(':') character. The ExtendableQueryParser
allows to encode extension
keys into the field symbol associated with a registered instance of
ParserExtension
. A customizable separation character separates the
extension key from the actual field symbol. The ExtendableQueryParser
splits (@see Extensions.splitExtensionField(String, String)
) the
extension key from the field symbol and tries to resolve the associated
ParserExtension
. If the parser can't resolve the key or the field
token does not contain a separation character, ExtendableQueryParser
yields the same behavior as its super class QueryParser
. Otherwise,
if the key is associated with a ParserExtension
instance, the parser
builds an instance of ExtensionQuery
to be processed by
ParserExtension.parse(ExtensionQuery)
.If a extension field does not
contain a field part the default field for the query will be used.
To guarantee that an extension field is processed with its associated extension, the extension query part must escape any special characters like '*' or '['. If the extension query contains any whitespace characters, the extension query part must be enclosed in quotes. Example ('_' used as separation character):
title_customExt:"Apache Lucene\?" OR content_customExt:prefix\*Search on the default field:
_customExt:"Apache Lucene\?" OR _customExt:prefix\*
The ExtendableQueryParser
itself does not implement the logic how
field and extension key are separated or ordered. All logic regarding the
extension key and field symbol parsing is located in Extensions
.
Customized extension schemes should be implemented by sub-classing
Extensions
.
For details about the default encoding scheme see Extensions
.
Extensions
,
ParserExtension
,
ExtensionQuery
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.apache.lucene.queryParser.QueryParser |
---|
org.apache.lucene.queryParser.QueryParser.Operator |
Field Summary |
---|
Fields inherited from class org.apache.lucene.queryParser.QueryParser |
---|
AND_OPERATOR, jj_nt, OR_OPERATOR, token, token_source |
Fields inherited from interface org.apache.lucene.queryParser.QueryParserConstants |
---|
_ESCAPED_CHAR, _NUM_CHAR, _QUOTED_CHAR, _TERM_CHAR, _TERM_START_CHAR, _WHITESPACE, AND, Boost, CARAT, COLON, DEFAULT, EOF, FUZZY_SLOP, LPAREN, MINUS, NOT, NUMBER, OR, PLUS, PREFIXTERM, QUOTED, RangeEx, RANGEEX_END, RANGEEX_GOOP, RANGEEX_QUOTED, RANGEEX_START, RANGEEX_TO, RangeIn, RANGEIN_END, RANGEIN_GOOP, RANGEIN_QUOTED, RANGEIN_START, RANGEIN_TO, RPAREN, STAR, TERM, tokenImage, WILDTERM |
Constructor Summary | |
---|---|
ExtendableQueryParser(org.apache.lucene.util.Version matchVersion,
String f,
org.apache.lucene.analysis.Analyzer a)
Creates a new ExtendableQueryParser instance |
|
ExtendableQueryParser(org.apache.lucene.util.Version matchVersion,
String f,
org.apache.lucene.analysis.Analyzer a,
Extensions ext)
Creates a new ExtendableQueryParser instance |
Method Summary | |
---|---|
char |
getExtensionFieldDelimiter()
Returns the extension field delimiter character. |
protected org.apache.lucene.search.Query |
getFieldQuery(String field,
String queryText,
boolean quoted)
|
Methods inherited from class org.apache.lucene.queryParser.QueryParser |
---|
addClause, Clause, Conjunction, disable_tracing, enable_tracing, escape, generateParseException, getAllowLeadingWildcard, getAnalyzer, getAutoGeneratePhraseQueries, getBooleanQuery, getBooleanQuery, getDateResolution, getDefaultOperator, getEnablePositionIncrements, getField, getFieldQuery, getFieldQuery, getFuzzyMinSim, getFuzzyPrefixLength, getFuzzyQuery, getLocale, getLowercaseExpandedTerms, getMultiTermRewriteMethod, getNextToken, getPhraseSlop, getPrefixQuery, getRangeCollator, getRangeQuery, getToken, getWildcardQuery, main, Modifiers, newBooleanClause, newBooleanQuery, newFuzzyQuery, newMatchAllDocsQuery, newMultiPhraseQuery, newPhraseQuery, newPrefixQuery, newRangeQuery, newTermQuery, newWildcardQuery, parse, Query, ReInit, ReInit, setAllowLeadingWildcard, setAutoGeneratePhraseQueries, setDateResolution, setDateResolution, setDefaultOperator, setEnablePositionIncrements, setFuzzyMinSim, setFuzzyPrefixLength, setLocale, setLowercaseExpandedTerms, setMultiTermRewriteMethod, setPhraseSlop, setRangeCollator, Term, TopLevelQuery |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ExtendableQueryParser(org.apache.lucene.util.Version matchVersion, String f, org.apache.lucene.analysis.Analyzer a)
ExtendableQueryParser
instance
matchVersion
- the lucene version to use.f
- the default query fielda
- the analyzer used to find terms in a query stringpublic ExtendableQueryParser(org.apache.lucene.util.Version matchVersion, String f, org.apache.lucene.analysis.Analyzer a, Extensions ext)
ExtendableQueryParser
instance
matchVersion
- the lucene version to use.f
- the default query fielda
- the analyzer used to find terms in a query stringext
- the query parser extensionsMethod Detail |
---|
public char getExtensionFieldDelimiter()
protected org.apache.lucene.search.Query getFieldQuery(String field, String queryText, boolean quoted) throws org.apache.lucene.queryParser.ParseException
getFieldQuery
in class org.apache.lucene.queryParser.QueryParser
org.apache.lucene.queryParser.ParseException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |