|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.jackrabbit.core.query.AbstractQueryHandler org.apache.jackrabbit.core.query.lucene.SearchIndex
Implements a QueryHandler
using
Lucene.
Nested Class Summary | |
protected static class |
SearchIndex.CombinedIndexReader
Combines multiple CachingMultiReader into a MultiReader
with HierarchyResolver support. |
Field Summary | |
static int |
DEFAULT_MAX_MERGE_DOCS
The default value for property #maxMergeDocs . |
static int |
DEFAULT_MERGE_FACTOR
the default value for property #mergeFactor . |
static int |
DEFAULT_MIN_MERGE_DOCS
The default value for property #minMergeDocs . |
static String |
DEFAULT_TEXT_FILTERS
Default text filters. |
Constructor Summary | |
SearchIndex()
Default constructor. |
Method Summary | |
void |
addNode(NodeState node)
Adds the node to the search index. |
void |
close()
Closes this QueryHandler and frees resources attached
to this handler. |
protected org.apache.lucene.document.Document |
createDocument(NodeState node,
NamespaceMappings nsMappings)
Creates a lucene Document from a node state using the
namespace mappings nsMappings . |
ExecutableQuery |
createExecutableQuery(SessionImpl session,
ItemManager itemMgr,
String statement,
String language)
Creates a new query by specifying the query statement itself and the language in which the query is stated. |
protected org.apache.lucene.search.SortField[] |
createSortFields(QName[] orderProps,
boolean[] orderSpecs)
Creates the SortFields for the order properties. |
void |
deleteNode(NodeId id)
Removes the node with uuid from the search index. |
protected void |
doInit()
Initializes this QueryHandler . |
QueryHits |
executeQuery(QueryImpl queryImpl,
org.apache.lucene.search.Query query,
QName[] orderProps,
boolean[] orderSpecs)
Executes the query on the search index. |
String |
getAnalyzer()
Returns the class name of the analyzer that is currently in use. |
boolean |
getAutoRepair()
|
int |
getBufferSize()
Returns the current value for the buffer size. |
int |
getCacheSize()
|
boolean |
getForceConsistencyCheck()
|
protected MultiIndex |
getIndex()
Returns the actual index. |
int |
getMaxMergeDocs()
Returns the current value for maxMergeDocs. |
int |
getMergeFactor()
Returns the current value for the merge factor. |
int |
getMinMergeDocs()
Returns the current value for minMergeDocs. |
NamespaceMappings |
getNamespaceMappings()
Returns the namespace mappings for the internal representation. |
String |
getPath()
Returns the location of the search index. |
boolean |
getRespectDocumentOrder()
|
org.apache.lucene.analysis.Analyzer |
getTextAnalyzer()
Returns the analyzer in use for indexing. |
String |
getTextFilterClasses()
Returns the fully qualified class names of the text filter instances currently in use. |
protected List |
getTextFilters()
Returns an unmodifiable list of TextFilter configured for
this search index. |
boolean |
getUseCompoundFile()
Returns the current value for useCompoundFile. |
int |
getVolatileIdleTime()
Returns the current value for volatileIdleTime. |
void |
setAnalyzer(String analyzerClassName)
Sets the analyzer in use for indexing. |
void |
setAutoRepair(boolean b)
|
void |
setBufferSize(int size)
|
void |
setCacheSize(int size)
|
void |
setForceConsistencyCheck(boolean b)
|
void |
setMaxMergeDocs(int maxMergeDocs)
The lucene index writer property: maxMergeDocs |
void |
setMergeFactor(int mergeFactor)
The lucene index writer property: mergeFactor |
void |
setMinMergeDocs(int minMergeDocs)
The lucene index writer property: minMergeDocs |
void |
setPath(String path)
Sets the location of the search index. |
void |
setRespectDocumentOrder(boolean docOrder)
|
void |
setTextFilterClasses(String filterClasses)
Sets a new set of text filter classes that are in use for indexing binary properties. |
void |
setUseCompoundFile(boolean b)
The lucene index writer property: useCompoundFile |
void |
setVolatileIdleTime(int volatileIdleTime)
Sets the property: volatileIdleTime |
void |
updateNodes(NodeIdIterator remove,
NodeStateIterator add)
This implementation forwards the call to MultiIndex#update(java.util.Iterator, java.util.Iterator) and
transforms the two iterators to the required types. |
Methods inherited from class org.apache.jackrabbit.core.query.AbstractQueryHandler |
getContext, init |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int DEFAULT_MIN_MERGE_DOCS
#minMergeDocs
.
public static final int DEFAULT_MAX_MERGE_DOCS
#maxMergeDocs
.
public static final int DEFAULT_MERGE_FACTOR
#mergeFactor
.
public static final String DEFAULT_TEXT_FILTERS
Constructor Detail |
public SearchIndex()
Method Detail |
protected void doInit() throws IOException
QueryHandler
. This implementation requires
that a path parameter is set in the configuration. If this condition
is not met, a IOException
is thrown.
doInit
in class AbstractQueryHandler
IOException
- if an error occurs while initializing this handler.public void addNode(NodeState node) throws RepositoryException, IOException
node
to the search index.
node
- the node to add.
RepositoryException
- if an error occurs while indexing the node.
IOException
- if an error occurs while adding the node to the index.public void deleteNode(NodeId id) throws IOException
uuid
from the search index.
id
- the id of the node to remove from the index.
IOException
- if an error occurs while removing the node from
the index.public void updateNodes(NodeIdIterator remove, NodeStateIterator add) throws RepositoryException, IOException
MultiIndex#update(java.util.Iterator, java.util.Iterator)
and
transforms the two iterators to the required types.
updateNodes
in interface QueryHandler
updateNodes
in class AbstractQueryHandler
remove
- uuids of nodes to remove.add
- NodeStates to add. Calls to next()
on this
iterator may return null
, to indicate that a
node could not be indexed successfully.
RepositoryException
- if an error occurs while indexing a node.
IOException
- if an error occurs while updating the index.public ExecutableQuery createExecutableQuery(SessionImpl session, ItemManager itemMgr, String statement, String language) throws InvalidQueryException
language
must specify a query language
string from among those returned by QueryManager.getSupportedQueryLanguages(); if it is not
then an InvalidQueryException
is thrown.
session
- the session of the current user creating the query object.itemMgr
- the item manager of the current user.statement
- the query statement.language
- the syntax of the query statement.
Query
object.
InvalidQueryException
- if statement is invalid or language is unsupported.public void close()
QueryHandler
and frees resources attached
to this handler.
public QueryHits executeQuery(QueryImpl queryImpl, org.apache.lucene.search.Query query, QName[] orderProps, boolean[] orderSpecs) throws IOException
queryImpl
- the query impl.query
- the lucene query.orderProps
- name of the properties for sort order.orderSpecs
- the order specs for the sort order properties.
true
indicates ascending order, false
indicates
descending.
IOException
- if an error occurs while searching the index.public org.apache.lucene.analysis.Analyzer getTextAnalyzer()
protected List getTextFilters()
TextFilter
configured for
this search index.
public NamespaceMappings getNamespaceMappings()
protected org.apache.lucene.search.SortField[] createSortFields(QName[] orderProps, boolean[] orderSpecs)
orderProps
- the order properties.orderSpecs
- the order specs for the properties.
protected org.apache.lucene.document.Document createDocument(NodeState node, NamespaceMappings nsMappings) throws RepositoryException
Document
from a node state using the
namespace mappings nsMappings
.
node
- the node state to index.nsMappings
- the namespace mappings of the search index.
Document
that contains all properties
of node
.
RepositoryException
- if an error occurs while indexing the
node
.protected MultiIndex getIndex()
public void setAnalyzer(String analyzerClassName)
If the above conditions are met, then a new instance of the class is set as the analyzer. Otherwise a warning is logged and the current analyzer is not changed.
This property setter method is normally invoked by the Jackrabbit configuration mechanism if the "analyzer" parameter is set in the search configuration.
analyzerClassName
- the analyzer class namepublic String getAnalyzer()
public void setPath(String path)
path
- the location of the search index.public String getPath()
null
if
not set.
public void setUseCompoundFile(boolean b)
public boolean getUseCompoundFile()
public void setMinMergeDocs(int minMergeDocs)
public int getMinMergeDocs()
public void setVolatileIdleTime(int volatileIdleTime)
volatileIdleTime
- idle time in secondspublic int getVolatileIdleTime()
public void setMaxMergeDocs(int maxMergeDocs)
public int getMaxMergeDocs()
public void setMergeFactor(int mergeFactor)
public int getMergeFactor()
public void setBufferSize(int size)
VolatileIndex#setBufferSize(int)
public int getBufferSize()
public void setRespectDocumentOrder(boolean docOrder)
public boolean getRespectDocumentOrder()
public void setForceConsistencyCheck(boolean b)
public boolean getForceConsistencyCheck()
public void setAutoRepair(boolean b)
public boolean getAutoRepair()
public void setCacheSize(int size)
public int getCacheSize()
public void setTextFilterClasses(String filterClasses)
filterClasses
must be a comma
separated String
of fully qualified class names implementing
TextFilter
. Each class must
provide a default constructor.
Filter class names that cannot be resolved are skipped and a warn message
is logged.
filterClasses
- comma separated list of filter class namespublic String getTextFilterClasses()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |