public class LuceneSearch
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.lang.Class<? extends CdmBase> |
cdmTypeRestriction
classFilter
|
protected java.lang.String |
groupByField |
protected java.lang.String[] |
highlightFields |
static java.lang.String |
ID_FIELD |
static Logger |
logger |
int |
MAX_HITS_ALLOWED
The MAX_HITS_ALLOWED value must be one less than Integer.MAX_VALUE
otherwise PriorityQueue will produce an exception since it
will always add 1 to the maxhits so Integer.MAX_VALUE
would become Integer.MIN_VALUE
|
protected org.apache.lucene.search.BooleanQuery |
query |
protected org.apache.lucene.search.IndexSearcher |
searcher |
protected org.apache.lucene.search.SortField[] |
sortFields |
protected ILuceneIndexToolProvider |
toolProvider |
Modifier | Constructor and Description |
---|---|
protected |
LuceneSearch() |
|
LuceneSearch(ILuceneIndexToolProvider toolProvider,
java.lang.Class<? extends CdmBase> directorySelectClass) |
|
LuceneSearch(ILuceneIndexToolProvider toolProvider,
java.lang.String groupByField,
java.lang.Class<? extends CdmBase> directorySelectClass) |
Modifier and Type | Method and Description |
---|---|
org.apache.lucene.search.TopDocs |
executeSearch(int maxNoOfHits) |
org.apache.lucene.search.grouping.TopGroups<org.apache.lucene.util.BytesRef> |
executeSearch(java.lang.Integer pageSize,
java.lang.Integer pageNumber) |
org.apache.lucene.search.grouping.TopGroups<org.apache.lucene.util.BytesRef> |
executeSearch(java.lang.String luceneQueryString,
java.lang.Integer pageSize,
java.lang.Integer pageNumber) |
protected org.apache.lucene.search.BooleanQuery |
expandQuery()
expands the query by adding a type restriction if the
cdmTypeRestriction is not NULL
and adds the filter as Boolean query
clause with BooleanClause.Occur.FILTER |
org.apache.lucene.analysis.Analyzer |
getAnalyzer()
Convenience method which delegated the call to the available
ILuceneIndexToolProvider.getAnalyzerFor(Class) method. |
java.lang.Class<? extends CdmBase> |
getCdmTypRestriction() |
protected java.lang.Class<? extends CdmBase> |
getDirectorySelectClass() |
org.apache.lucene.search.BooleanQuery |
getExpandedQuery() |
org.apache.lucene.search.BooleanQuery |
getFilter() |
java.lang.String[] |
getHighlightFields() |
int |
getMaxDocsPerGroup() |
org.apache.lucene.search.BooleanQuery |
getQuery() |
org.apache.lucene.search.IndexSearcher |
getSearcher() |
org.apache.lucene.search.SortField[] |
getSortFields() |
org.apache.lucene.search.Query |
parse(java.lang.String luceneQueryString) |
void |
setCdmTypRestriction(java.lang.Class<? extends CdmBase> clazz)
Sets the Class to use as filter criterion, in case the supplied Class equals the
directorySelectClass the Class is set to null |
void |
setFilter(org.apache.lucene.search.BooleanQuery filter) |
void |
setHighlightFields(java.lang.String[] textFieldNamesAsArray) |
void |
setMaxDocsPerGroup(int maxDocsPerGroup) |
void |
setQuery(org.apache.lucene.search.Query query) |
void |
setSortFields(org.apache.lucene.search.SortField[] sortFields) |
protected java.lang.String groupByField
public static final java.lang.String ID_FIELD
public static final Logger logger
protected ILuceneIndexToolProvider toolProvider
protected org.apache.lucene.search.IndexSearcher searcher
protected org.apache.lucene.search.SortField[] sortFields
protected java.lang.Class<? extends CdmBase> cdmTypeRestriction
public final int MAX_HITS_ALLOWED
protected org.apache.lucene.search.BooleanQuery query
protected java.lang.String[] highlightFields
public LuceneSearch(ILuceneIndexToolProvider toolProvider, java.lang.Class<? extends CdmBase> directorySelectClass)
session
- public LuceneSearch(ILuceneIndexToolProvider toolProvider, java.lang.String groupByField, java.lang.Class<? extends CdmBase> directorySelectClass)
session
- protected LuceneSearch()
protected java.lang.Class<? extends CdmBase> getDirectorySelectClass()
public java.lang.Class<? extends CdmBase> getCdmTypRestriction()
public org.apache.lucene.search.BooleanQuery getFilter()
public void setFilter(org.apache.lucene.search.BooleanQuery filter)
filter
- the filter to setpublic void setCdmTypRestriction(java.lang.Class<? extends CdmBase> clazz)
directorySelectClass
the Class is set to null
clazz
- public int getMaxDocsPerGroup()
public void setMaxDocsPerGroup(int maxDocsPerGroup)
public org.apache.lucene.search.IndexSearcher getSearcher()
public org.apache.lucene.analysis.Analyzer getAnalyzer()
ILuceneIndexToolProvider.getAnalyzerFor(Class)
method.directorySelectClass
of the LuceneSearchpublic org.apache.lucene.search.grouping.TopGroups<org.apache.lucene.util.BytesRef> executeSearch(java.lang.String luceneQueryString, java.lang.Integer pageSize, java.lang.Integer pageNumber) throws org.apache.lucene.queryparser.classic.ParseException, java.io.IOException
luceneQueryString
- cdmTypeRestriction
- the type as additional filter criterionpageSize
- if the page size is null or in an invalid range it will be set to MAX_HITS_ALLOWEDpageNumber
- a 0-based index of the page to return, will default to 0 if null or negative.org.apache.lucene.queryparser.classic.ParseException
java.io.IOException
public org.apache.lucene.search.Query parse(java.lang.String luceneQueryString) throws org.apache.lucene.queryparser.classic.ParseException
luceneQueryString
- org.apache.lucene.queryparser.classic.ParseException
public org.apache.lucene.search.TopDocs executeSearch(int maxNoOfHits) throws java.io.IOException
maxNoOfHits
- java.io.IOException
public org.apache.lucene.search.grouping.TopGroups<org.apache.lucene.util.BytesRef> executeSearch(java.lang.Integer pageSize, java.lang.Integer pageNumber) throws org.apache.lucene.queryparser.classic.ParseException, java.io.IOException
pageSize
- if the page size is null or in an invalid range it will be set to MAX_HITS_ALLOWEDpageNumber
- a 0-based index of the page to return, will default to 0 if null or negative.org.apache.lucene.queryparser.classic.ParseException
java.io.IOException
protected org.apache.lucene.search.BooleanQuery expandQuery()
cdmTypeRestriction
is not NULL
and adds the filter
as Boolean query
clause with BooleanClause.Occur.FILTER
public void setQuery(org.apache.lucene.search.Query query)
public org.apache.lucene.search.BooleanQuery getQuery()
public org.apache.lucene.search.BooleanQuery getExpandedQuery()
public org.apache.lucene.search.SortField[] getSortFields()
public void setSortFields(org.apache.lucene.search.SortField[] sortFields)
public void setHighlightFields(java.lang.String[] textFieldNamesAsArray)
public java.lang.String[] getHighlightFields()
Copyright © 2007-2020 EDIT. All Rights Reserved.