collective.indexing 2.0 Alpha 3

Abstract framework for queueing, optimizing and dispatching index operations for Plone content
collective.indexing is an approach to provide an abstract framework for optimizing and queuing index operations in Plone as well as dispatching them to various backends. The default implementation aims to replace the standard indexing mechanism of CMF to allow index operations to be handled asynchronously in a backwards-compatible way.

Queuing these operations on a transaction level allows to get rid of redundant indexing of objects and thereby providing a substantial performance improvement. By leveraging the component architecture and Zope event system collective.indexing also makes it much easier to use backends other than or in addition to the standard portal catalog for indexing, such as dedicated search engine solutions like Solr, Xapian or Google Search Appliance. One backend implementation designed to be used with this package has already been started in the form of collective.solr.

Subscriber Support

The package comes with support for queueing up and performing indexing operations via event subscribers. The idea behind this is to not rely on explicit calls as defined in CMFCatalogAware alone, but instead make it possible to phase them out eventually. As the additional indexing operations added via the subscribers are optimized away anyway, this only adds very little processing overhead.

However, even though IObjectModifiedEvent has support for partial reindexing by passing a list of descriptions/index names, this is currently not used anywhere in Plone. Unfortunately that means that partial reindex operations will be "upgraded" to full reindexes, e.g. for IContainerModifiedEvent via the notifyContainerModified helper, which is one reason why subscriber support is not enabled by default for now.

To activate please use:

zcml = collective.indexing:subscribers.zcml

instead of just the package name itself, re-run buildout and restart your Plone instance.

last updated on:
August 23rd, 2011, 8:36 GMT
license type:
GPL (GNU General Public License) 
developed by:
Plone Foundation
ROOT \ Internet \ Plone Extensions
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!
What's New in This Release:
  • Added back IIndexQueueSwitch marker interface for better uninstall support for 1.x versions. Fixes [hannosch, dholth]
read full changelog

Add your review!