|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IndexWorker
Provide concurrent access to the index structure. Implements the core operations on the index.
The methods in this class are used in a multi-threaded environment. Every thread accessing the
database will have exactly one IndexWorker for every index. Index.getWorker(DBBroker)
should thus return a new IndexWorker whenever it is called. Implementations of IndexWorker have
to take care of synchronizing access to shared resources.
Field Summary | |
---|---|
static String |
VALUE_COUNT
A key to a QName List "hint" to be used when the index scans its index entries |
Method Summary | |
---|---|
boolean |
checkIndex(DBBroker broker)
Checking index could be delegated to a worker. |
Object |
configure(IndexController controller,
NodeList configNodes,
Map namespaces)
Read an index configuration from an collection.xconf configuration document. |
void |
flush()
Flush the index. |
DocumentImpl |
getDocument()
Returns the document for the next operation. |
String |
getIndexId()
Returns an ID which uniquely identifies this worker's index. |
String |
getIndexName()
Returns a name which uniquely identifies this worker's index. |
StreamListener |
getListener()
Return a stream listener to index the current document in the current mode. |
MatchListener |
getMatchListener(DBBroker broker,
NodeProxy proxy)
Returns a MatchListener , which can be used to filter
(and manipulate) the XML output generated by the serializer when serializing
query results. |
int |
getMode()
Returns the mode for the next operation. |
StoredNode |
getReindexRoot(StoredNode node,
NodePath path,
boolean includeSelf)
When adding or removing nodes to or from the document tree, it might become necessary to reindex some parts of the tree, in particular if indexes are defined on mixed content nodes. |
void |
removeCollection(Collection collection,
DBBroker broker)
Remove all indexes for the given collection, its subcollections and all resources.. |
Occurrences[] |
scanIndex(XQueryContext context,
DocumentSet docs,
NodeSet contextSet,
Map hints)
Return aggregated (on a document count basis) index entries for the specified document set. |
void |
setDocument(DocumentImpl doc)
Notify this worker to operate on the specified document. |
void |
setDocument(DocumentImpl doc,
int mode)
Notify this worker to operate on the specified document, using the mode given. |
void |
setMode(int mode)
Notify this worker to operate using the mode given. |
Field Detail |
---|
static final String VALUE_COUNT
List
"hint" to be used when the index scans its index entries
Method Detail |
---|
String getIndexId()
String getIndexName()
Object configure(IndexController controller, NodeList configNodes, Map namespaces) throws DatabaseConfigurationException
CollectionConfiguration
while
reading the collection.xconf configuration file for a given collection. The configNodes
parameter lists all top-level child nodes below the <index> element in the
collection.xconf. The IndexWorker should scan this list and handle those elements
it understands.
The returned Object will be stored in the collection configuration structure associated
with each collection. It can later be retrieved from the collection configuration, e.g. to
check if a given node should be indexed or not.
configNodes
- lists the top-level child nodes below the <index> element in collection.xconfnamespaces
- the active prefix/namespace map
DatabaseConfigurationException
- if a configuration error occursvoid setDocument(DocumentImpl doc)
doc
- the document which is processedvoid setDocument(DocumentImpl doc, int mode)
StreamListener.UNKNOWN
, StreamListener.STORE
,
StreamListener.REMOVE_SOME_NODES
or StreamListener.REMOVE_ALL_NODES
.
doc
- the document which is processedmode
- the current operation modevoid setMode(int mode)
StreamListener.UNKNOWN
, StreamListener.STORE
,
StreamListener.REMOVE_SOME_NODES
or StreamListener.REMOVE_ALL_NODES
.
mode
- the current operation modeDocumentImpl getDocument()
int getMode()
StoredNode getReindexRoot(StoredNode node, NodePath path, boolean includeSelf)
getReindexRoot(org.exist.dom.StoredNode, org.exist.storage.NodePath, boolean)
on each configured index. It will then return the top-most root.
node
- the node to be modified.path
- path the NodePath of the nodeincludeSelf
- if set to true, the current node itself will be included in the check
StreamListener getListener()
MatchListener getMatchListener(DBBroker broker, NodeProxy proxy)
MatchListener
, which can be used to filter
(and manipulate) the XML output generated by the serializer when serializing
query results. The method should return null if the implementation is not interested
in receiving serialization events.
proxy
- the NodeProxy which is being serialized
void flush()
void removeCollection(Collection collection, DBBroker broker)
collection
- The collection to removebroker
- The broker that will perform the operationboolean checkIndex(DBBroker broker)
broker
- The broker that will perform the operation
Occurrences[] scanIndex(XQueryContext context, DocumentSet docs, NodeSet contextSet, Map hints)
OrderedValuesIndex
, otherwise each entry will be considered
as a single occurence.
context
- docs
- The documents to which the index entries belongcontextSet
- hints
- Some "hints" for retrieving the index entries. See such hints in
OrderedValuesIndex
and QNamedKeysIndex
.
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |