org.alfresco.repo.search.impl.lucene
Class LuceneQueryParser
java.lang.Object
org.apache.lucene.queryParser.QueryParser
org.alfresco.repo.search.impl.lucene.AbstractLuceneQueryParser
org.alfresco.repo.search.impl.lucene.LuceneQueryParser
- All Implemented Interfaces:
- org.apache.lucene.queryParser.QueryParserConstants
public class LuceneQueryParser
- extends AbstractLuceneQueryParser
Extensions to the standard lucene query parser.
Covers:
- special fields;
- range expansion;
- adds wild card support for phrases;
- exposes more helper methods to build lucene queries and request tokneisation bahviour.
TODO: Locale loop should not include tokenisation expansion
Nested classes/interfaces inherited from class org.apache.lucene.queryParser.QueryParser |
org.apache.lucene.queryParser.QueryParser.Operator |
Fields inherited from class org.alfresco.repo.search.impl.lucene.AbstractLuceneQueryParser |
dictionaryService, FIELD_ACLID, FIELD_ACLTXCOMMITTIME, FIELD_ACLTXID, FIELD_ALL, FIELD_ANCESTOR, FIELD_ASPECT, FIELD_ASSOCTYPEQNAME, FIELD_AUTHORITY, FIELD_CLASS, FIELD_CONTENT_DOC_ID_SUFFIX, FIELD_DBID, FIELD_ENCODING_SUFFIX, FIELD_EXACTASPECT, FIELD_EXACTTYPE, FIELD_FTSREF, FIELD_FTSSTATUS, FIELD_ID, FIELD_INACLTXID, FIELD_INTXID, FIELD_ISCATEGORY, FIELD_ISCONTAINER, FIELD_ISNODE, FIELD_ISNOTNULL, FIELD_ISNULL, FIELD_ISROOT, FIELD_ISUNSET, FIELD_LID, FIELD_LINKASPECT, FIELD_LOCALE_SUFFIX, FIELD_MIMETYPE_SUFFIX, FIELD_NO_LOCALE_SUFFIX, FIELD_OWNER, FIELD_PARENT, FIELD_PARENT_ASSOC_CRC, FIELD_PATH, FIELD_PATHWITHREPEATS, FIELD_PRIMARYASSOCQNAME, FIELD_PRIMARYASSOCTYPEQNAME, FIELD_PRIMARYPARENT, FIELD_QNAME, FIELD_READER, FIELD_SIZE_SUFFIX, FIELD_SORT_SUFFIX, FIELD_TAG, FIELD_TENANT, FIELD_TEXT, FIELD_TRANSFORMATION_EXCEPTION_SUFFIX, FIELD_TRANSFORMATION_STATUS_SUFFIX, FIELD_TRANSFORMATION_TIME_SUFFIX, FIELD_TX, FIELD_TXCOMMITTIME, FIELD_TXID, FIELD_TYPE, namespacePrefixResolver, PROPERTY_FIELD_PREFIX |
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 |
LuceneQueryParser(org.apache.lucene.queryParser.CharStream arg0)
Lucene default constructor |
LuceneQueryParser(org.apache.lucene.queryParser.QueryParserTokenManager arg0)
Lucene default constructor |
LuceneQueryParser(java.lang.String arg0,
org.apache.lucene.analysis.Analyzer arg1)
Lucene default constructor |
Method Summary |
protected org.apache.lucene.search.Query |
addContentAttributeQuery(java.lang.String queryText,
AbstractLuceneQueryParser.SubQuery subQueryBuilder,
AnalysisMode analysisMode,
LuceneFunction luceneFunction,
java.lang.String expandedFieldName,
java.util.List expandedLocales,
MLAnalysisMode mlAnalysisMode)
|
protected void |
addLocaleSpecificUntokenisedMLOrTextFunction(java.lang.String expandedFieldName,
java.lang.String queryText,
LuceneFunction luceneFunction,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale,
IndexTokenisationMode tokenisationMode)
|
protected void |
addLocaleSpecificUntokenisedTextRangeFunction(java.lang.String expandedFieldName,
java.lang.String lower,
java.lang.String upper,
boolean includeLower,
boolean includeUpper,
LuceneFunction luceneFunction,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale,
IndexTokenisationMode tokenisationMode)
|
protected void |
addMLTextAttributeQuery(java.lang.String field,
java.lang.String queryText,
AbstractLuceneQueryParser.SubQuery subQueryBuilder,
AnalysisMode analysisMode,
LuceneFunction luceneFunction,
java.lang.String expandedFieldName,
PropertyDefinition propertyDef,
IndexTokenisationMode tokenisationMode,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale)
|
protected void |
addTextAttributeQuery(java.lang.String field,
java.lang.String queryText,
AbstractLuceneQueryParser.SubQuery subQueryBuilder,
AnalysisMode analysisMode,
LuceneFunction luceneFunction,
java.lang.String expandedFieldName,
IndexTokenisationMode tokenisationMode,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale)
|
protected void |
addTextRange(java.lang.String field,
java.lang.String part1,
java.lang.String part2,
boolean includeLower,
boolean includeUpper,
AnalysisMode analysisMode,
java.lang.String fieldName,
PropertyDefinition propertyDef,
IndexTokenisationMode tokenisationMode,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale)
|
protected org.apache.lucene.search.Query |
createAclIdQuery(java.lang.String queryText)
|
protected org.apache.lucene.search.Query |
createAssocTypeQNameQuery(java.lang.String queryText)
|
protected org.apache.lucene.search.Query |
createAuthorityQuery(java.lang.String queryText)
|
protected org.apache.lucene.search.Query |
createOwnerQuery(java.lang.String queryText)
|
protected org.apache.lucene.search.Query |
createPathQuery(java.lang.String queryText,
boolean withRepeats)
|
protected org.apache.lucene.search.Query |
createPrimaryAssocTypeQNameQuery(java.lang.String queryText)
|
protected org.apache.lucene.search.Query |
createQNameQuery(java.lang.String queryText)
|
protected org.apache.lucene.search.Query |
createReaderQuery(java.lang.String queryText)
|
protected boolean |
isLucene()
|
static org.apache.lucene.search.Query |
parse(java.lang.String query,
java.lang.String field,
org.apache.lucene.analysis.Analyzer analyzer,
NamespacePrefixResolver namespacePrefixResolver,
DictionaryService dictionaryService,
TenantService tenantService,
org.apache.lucene.queryParser.QueryParser.Operator defaultOperator,
SearchParameters searchParameters,
MLAnalysisMode defaultSearchMLAnalysisMode,
org.apache.lucene.index.IndexReader indexReader)
Parses a query string, returning a Query . |
Methods inherited from class org.alfresco.repo.search.impl.lucene.AbstractLuceneQueryParser |
createAclTxCommitTimeQuery, createAclTxIdQuery, createAllQuery, createAncestorQuery, createAspectQuery, createDataTypeDefinitionQuery, createDbidQuery, createIdQuery, createIsContainerQuery, createIsNodeQuery, createIsNotNull, createIsNullQuery, createIsRootQuery, createIsUnsetQuery, createNodeRefQuery, createNoMatchQuery, createParentQuery, createPrimaryParentQuery, createTagQuery, createTermQuery, createTextQuery, createTransactionQuery, createTxCommitTimeQuery, createTxIdQuery, createTypeQuery, functionQueryBuilder, getAnalyzer, getDefaultSearchMLAnalysisMode, getDoesNotMatchFieldQuery, getFieldQuery, getFieldQuery, getFieldQuery, getFieldQuery, getFieldQueryImpl, getFuzzyQuery, getIndexReader, getLikeQuery, getPrefixQuery, getRangeQuery, getRangeQuery, getSearchParameters, getSpanQuery, getSuperFieldQuery, getSuperFuzzyQuery, getSuperPrefixQuery, getSuperWildcardQuery, getToken, getWildcardQuery, main, newPrefixQuery, newWildcardQuery, setDefaultSearchMLAnalysisMode, setDictionaryService, setIndexReader, setNamespacePrefixResolver, setSearchParameters, setTenantService |
Methods inherited from class org.apache.lucene.queryParser.QueryParser |
addClause, addClause, Clause, Conjunction, disable_tracing, enable_tracing, escape, generateParseException, getAllowLeadingWildcard, getBooleanQuery, getBooleanQuery, getBooleanQuery, getBooleanQuery, getDateResolution, getDefaultOperator, getEnablePositionIncrements, getField, getFuzzyMinSim, getFuzzyPrefixLength, getLocale, getLowercaseExpandedTerms, getNextToken, getPhraseSlop, getRangeCollator, getToken, getUseOldRangeQuery, Modifiers, newBooleanClause, newBooleanQuery, newFuzzyQuery, newMatchAllDocsQuery, newMultiPhraseQuery, newPhraseQuery, newRangeQuery, newTermQuery, parse, Query, ReInit, ReInit, setAllowLeadingWildcard, setDateResolution, setDateResolution, setDefaultOperator, setEnablePositionIncrements, setFuzzyMinSim, setFuzzyPrefixLength, setLocale, setLowercaseExpandedTerms, setPhraseSlop, setRangeCollator, setUseOldRangeQuery, Term, TopLevelQuery |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LuceneQueryParser
public LuceneQueryParser(java.lang.String arg0,
org.apache.lucene.analysis.Analyzer arg1)
- Lucene default constructor
- Parameters:
arg0
- arg1
-
LuceneQueryParser
public LuceneQueryParser(org.apache.lucene.queryParser.CharStream arg0)
- Lucene default constructor
- Parameters:
arg0
-
LuceneQueryParser
public LuceneQueryParser(org.apache.lucene.queryParser.QueryParserTokenManager arg0)
- Lucene default constructor
- Parameters:
arg0
-
parse
public static org.apache.lucene.search.Query parse(java.lang.String query,
java.lang.String field,
org.apache.lucene.analysis.Analyzer analyzer,
NamespacePrefixResolver namespacePrefixResolver,
DictionaryService dictionaryService,
TenantService tenantService,
org.apache.lucene.queryParser.QueryParser.Operator defaultOperator,
SearchParameters searchParameters,
MLAnalysisMode defaultSearchMLAnalysisMode,
org.apache.lucene.index.IndexReader indexReader)
throws org.apache.lucene.queryParser.ParseException
- Parses a query string, returning a
Query
.
- Parameters:
query
- the query string to be parsed.field
- the default field for query terms.analyzer
- used to find terms in the query text.namespacePrefixResolver
- dictionaryService
- tenantService
- defaultOperator
- searchParameters
- indexReader
-
- Returns:
- - the query
- Throws:
org.apache.lucene.queryParser.ParseException
- if the parsing fails
createAclIdQuery
protected org.apache.lucene.search.Query createAclIdQuery(java.lang.String queryText)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
createAclIdQuery
in class AbstractLuceneQueryParser
- Parameters:
queryText
-
- Returns:
-
- Throws:
org.apache.lucene.queryParser.ParseException
createOwnerQuery
protected org.apache.lucene.search.Query createOwnerQuery(java.lang.String queryText)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
createOwnerQuery
in class AbstractLuceneQueryParser
- Parameters:
queryText
-
- Returns:
-
- Throws:
org.apache.lucene.queryParser.ParseException
createReaderQuery
protected org.apache.lucene.search.Query createReaderQuery(java.lang.String queryText)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
createReaderQuery
in class AbstractLuceneQueryParser
- Parameters:
queryText
-
- Returns:
-
- Throws:
org.apache.lucene.queryParser.ParseException
createAuthorityQuery
protected org.apache.lucene.search.Query createAuthorityQuery(java.lang.String queryText)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
createAuthorityQuery
in class AbstractLuceneQueryParser
- Parameters:
queryText
-
- Returns:
-
- Throws:
org.apache.lucene.queryParser.ParseException
createAssocTypeQNameQuery
protected org.apache.lucene.search.Query createAssocTypeQNameQuery(java.lang.String queryText)
throws org.saxpath.SAXPathException
- Specified by:
createAssocTypeQNameQuery
in class AbstractLuceneQueryParser
- Throws:
org.saxpath.SAXPathException
createPrimaryAssocTypeQNameQuery
protected org.apache.lucene.search.Query createPrimaryAssocTypeQNameQuery(java.lang.String queryText)
throws org.saxpath.SAXPathException
- Specified by:
createPrimaryAssocTypeQNameQuery
in class AbstractLuceneQueryParser
- Throws:
org.saxpath.SAXPathException
createQNameQuery
protected org.apache.lucene.search.Query createQNameQuery(java.lang.String queryText)
throws org.saxpath.SAXPathException
- Specified by:
createQNameQuery
in class AbstractLuceneQueryParser
- Throws:
org.saxpath.SAXPathException
createPathQuery
protected org.apache.lucene.search.Query createPathQuery(java.lang.String queryText,
boolean withRepeats)
throws org.saxpath.SAXPathException
- Specified by:
createPathQuery
in class AbstractLuceneQueryParser
- Throws:
org.saxpath.SAXPathException
addTextRange
protected void addTextRange(java.lang.String field,
java.lang.String part1,
java.lang.String part2,
boolean includeLower,
boolean includeUpper,
AnalysisMode analysisMode,
java.lang.String fieldName,
PropertyDefinition propertyDef,
IndexTokenisationMode tokenisationMode,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
addTextRange
in class AbstractLuceneQueryParser
- Parameters:
field
- part1
- part2
- includeLower
- includeUpper
- analysisMode
- fieldName
- propertyDef
- tokenisationMode
- booleanQuery
- mlAnalysisMode
- locale
-
- Throws:
org.apache.lucene.queryParser.ParseException
addLocaleSpecificUntokenisedTextRangeFunction
protected void addLocaleSpecificUntokenisedTextRangeFunction(java.lang.String expandedFieldName,
java.lang.String lower,
java.lang.String upper,
boolean includeLower,
boolean includeUpper,
LuceneFunction luceneFunction,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale,
IndexTokenisationMode tokenisationMode)
- Specified by:
addLocaleSpecificUntokenisedTextRangeFunction
in class AbstractLuceneQueryParser
addLocaleSpecificUntokenisedMLOrTextFunction
protected void addLocaleSpecificUntokenisedMLOrTextFunction(java.lang.String expandedFieldName,
java.lang.String queryText,
LuceneFunction luceneFunction,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale,
IndexTokenisationMode tokenisationMode)
- Specified by:
addLocaleSpecificUntokenisedMLOrTextFunction
in class AbstractLuceneQueryParser
addMLTextAttributeQuery
protected void addMLTextAttributeQuery(java.lang.String field,
java.lang.String queryText,
AbstractLuceneQueryParser.SubQuery subQueryBuilder,
AnalysisMode analysisMode,
LuceneFunction luceneFunction,
java.lang.String expandedFieldName,
PropertyDefinition propertyDef,
IndexTokenisationMode tokenisationMode,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
addMLTextAttributeQuery
in class AbstractLuceneQueryParser
- Throws:
org.apache.lucene.queryParser.ParseException
addContentAttributeQuery
protected org.apache.lucene.search.Query addContentAttributeQuery(java.lang.String queryText,
AbstractLuceneQueryParser.SubQuery subQueryBuilder,
AnalysisMode analysisMode,
LuceneFunction luceneFunction,
java.lang.String expandedFieldName,
java.util.List expandedLocales,
MLAnalysisMode mlAnalysisMode)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
addContentAttributeQuery
in class AbstractLuceneQueryParser
- Returns:
-
- Throws:
org.apache.lucene.queryParser.ParseException
addTextAttributeQuery
protected void addTextAttributeQuery(java.lang.String field,
java.lang.String queryText,
AbstractLuceneQueryParser.SubQuery subQueryBuilder,
AnalysisMode analysisMode,
LuceneFunction luceneFunction,
java.lang.String expandedFieldName,
IndexTokenisationMode tokenisationMode,
org.apache.lucene.search.BooleanQuery booleanQuery,
MLAnalysisMode mlAnalysisMode,
java.util.Locale locale)
throws org.apache.lucene.queryParser.ParseException
- Specified by:
addTextAttributeQuery
in class AbstractLuceneQueryParser
- Parameters:
field
- queryText
- subQueryBuilder
- analysisMode
- luceneFunction
- expandedFieldName
- tokenisationMode
- booleanQuery
- mlAnalysisMode
- locale
- textFieldName
-
- Throws:
org.apache.lucene.queryParser.ParseException
isLucene
protected boolean isLucene()
- Specified by:
isLucene
in class AbstractLuceneQueryParser
- Returns:
Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.