org.alfresco.repo.search
Interface Indexer

All Known Subinterfaces:
ADMLuceneIndexer, AVMLuceneIndexer, LuceneIndexer
All Known Implementing Classes:
AbstractLuceneIndexerImpl, ADMLuceneIndexerImpl, ADMLuceneNoActionIndexerImpl, AVMLuceneIndexerImpl, IndexerComponent, NoActionIndexer, NoIndexIndexer

public interface Indexer

This interface abstracts how indexing is used from within the node service implementation. It has to optionally offer transactional integration For example, the lucene indexer


Method Summary
 void createChildRelationship(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
          Create a refernce link between a parent and child.
 void createNode(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
          Create an index entry when a new node is created.
 void deleteChildRelationship(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
          Delete a relationship between a parent and child.
 void deleteIndex(org.alfresco.service.cmr.repository.StoreRef storeRef)
          Delete the index for a store
 void deleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
          Delete a node entry from an index.
 void flushPending()
           
 void setReadThrough(boolean isReadThrough)
          Activates 'read through' behaviour for this indexer.
 void updateChildRelationship(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipBeforeRef, org.alfresco.service.cmr.repository.ChildAssociationRef relationshipAfterRef)
          Alter the relationship between parent and child nodes in the index.
 void updateNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Update an index entry due to property changes on a node.
 

Method Detail

createNode

void createNode(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
Create an index entry when a new node is created. A node is always created with a name in a given parent and so a relationship ref is required.

Parameters:
relationshipRef -

updateNode

void updateNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Update an index entry due to property changes on a node. There are no strucural impications from such a change.

Parameters:
nodeRef -

deleteNode

void deleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
Delete a node entry from an index. This implies structural change. The node will be deleted from the index. This will also remove any remaining refernces to the node from the index. The index has no idea of the primary link.

Parameters:
relationshipRef -

createChildRelationship

void createChildRelationship(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
Create a refernce link between a parent and child. Implies only (potential) structural changes

Parameters:
relationshipRef -

updateChildRelationship

void updateChildRelationship(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipBeforeRef,
                             org.alfresco.service.cmr.repository.ChildAssociationRef relationshipAfterRef)
Alter the relationship between parent and child nodes in the index. This can be used for:
  1. rename,
  2. move,
  3. move and rename,
  4. replace
This could be implemented as a delete and add but some implementations may be able to optimise this operation.

Parameters:
relationshipBeforeRef -
relationshipAfterRef -

deleteChildRelationship

void deleteChildRelationship(org.alfresco.service.cmr.repository.ChildAssociationRef relationshipRef)
Delete a relationship between a parent and child. This will remove a structural route through the index. The index has no idea of reference and primary relationships and will happily remove the primary relationship before refernces which could remain. Use delete to ensure all strctural references are removed or call this sure you are doing an unlink (remove a hard link in the unix file system world).

Parameters:
relationshipRef -

deleteIndex

void deleteIndex(org.alfresco.service.cmr.repository.StoreRef storeRef)
Delete the index for a store

Parameters:
storeRef -

flushPending

void flushPending()

setReadThrough

void setReadThrough(boolean isReadThrough)
Activates 'read through' behaviour for this indexer. Rather than accessing the database through the current (potentially old) transaction, it will use a discrete read only transaction for each node it indexes. This avoids 'stale' nodes building up in the caches during long reindex runs.

Parameters:
isReadThrough -


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.