Metadata-Version: 1.0
Name: collective.indexing
Version: 1.0b5
Summary: Abstract framework for queueing, optimizing and dispatching index operations for portal content.
Home-page: http://plone.org/products/collective.indexing
Author: Plone Foundation
Author-email: plone-developers@lists.sourceforge.net
License: GPL
Download-URL: http://cheeseshop.python.org/pypi/collective.indexing/
Description: 
        
        Introduction
        ------------
        
        `collective.indexing`_ is an approach to provide an abstract framework for
        queuing and optimizing 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 event system of
        `zope3` `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`_.
        
        If you are using CacheSetup make sure that you have CMFSquidTool 1.5 or
        later: older versions do not handle purge requests being generated during
        transaction commit and will produce internal errors.
        
        
        .. _`collective.indexing`: http://dev.plone.org/collective/browser/collective.indexing/
        .. _`Plone`: http://www.plone.org/
        .. _`CMF`: http://www.zope.org/Products/CMF/
        .. _`zope3`: http://wiki.zope.org/zope3/Zope3Wiki
        .. _`Solr`: http://lucene.apache.org/solr/
        .. _`Xapian`: http://www.xapian.org/
        .. _`Google Search Appliance`: http://www.google.com/enterprise/gsa/
        .. _`collective.solr`: http://dev.plone.org/collective/browser/collective.solr/
        
        
        Current Status
        --------------
        
        The implementation is considered to be nearly finished.  The package can be
        installed in a Plone 3.x site to enable indexing operations to be queued,
        optimized and dispatched to the standard portal catalog on the zope
        transaction boundary thereby improving the Plone's out-of-the-box
        performance_.  A buildout_ is provided for your convenience.
        
        .. _performance: http://www.jarn.com/blog/plone-indexing-performance
        .. _buildout: http://svn.plone.org/svn/collective/collective.indexing/buildout
        
        At the moment the package requires "monkey patches" to the mixin classes
        currently used to hook up indexing, i.e. ``CMFCatalogAware`` (from `CMF`_)
        and ``CatalogMultiplex`` (from `Archetypes`_).  It is planned to make these
        classes "pluggable" by use of adapters, allowing `collective.indexing` to
        hook in in clean ways.  This will be proposed as a `PLIP`_ for inclusion
        into `Plone`_ 3.2.
        
        .. _`Archetypes`: http://plone.org/products/archetypes
        .. _`PLIP`: http://plone.org/documentation/glossary/plip
        
        In conjunction with `collective.solr`_ the package also provides a
        working solution for integration of `Solr`_ with `Plone`_.  Based on a schema
        `configurable`__ at `zc.buildout`_ level indexing operations can be dispatched
        a `Solr`_ instance in addition or alternatively to the standard catalog.  This
        allows for minimal and very efficient indexing of standard `Plone`_ content
        items based on `Archetypes`_.  Providing support for other content types is
        rather trivial and will be support soon.
        
        .. __: http://svn.plone.org/svn/collective/buildout/collective.recipe.solrinstance/trunk/README.txt
        .. _`zc.buildout`: http://pypi.python.org/pypi/zc.buildout
        
        The code was written with emphasis on minimalism, clarity and maintainability.
        It comes with extensive tests covering the code base at more than 95%.
        
        For outstanding issues and features remaining to be implemented please see the
        `to-do list`__ included in the package.
        
        .. __: http://svn.plone.org/svn/collective/collective.indexing/trunk/TODO.txt
        
        
        Credits
        -------
        
        This code was inspired by `enfold.indexing`_ and `enfold.solr`_ by `Enfold
        Systems`_ as well as `work done at the snowsprint'08`__.  The
        ``TransactionManager`` pattern is taken from `enfold.solr`_.  Development was
        kindly sponsored by `Elkjop`_.
        
        .. _`enfold.indexing`: https://svn.enfoldsystems.com/browse/public/enfold.solr/branches/snowsprint08-buildout/enfold.indexing/
        .. _`enfold.solr`: https://svn.enfoldsystems.com/browse/public/enfold.solr/branches/snowsprint08-buildout/enfold.solr/
        .. _`Enfold Systems`: http://www.enfoldsystems.com/
        .. __: http://tarekziade.wordpress.com/2008/01/20/snow-sprint-report-1-indexing/
        .. _`Elkjop`: http://www.elkjop.no/
        
        
        Changelog
        =========
        
        1.0b5 - Released October 16th, 2008
        -----------------------------------
        
        * Fix transaction handling to properly abort indexing operations.
        [witsch]
        
        * Refactor helper method for auto-flushing the queue to make it more easily
        re-usable.
        [witsch]
        
        * Enable the monkey patch for `PloneTool.reindexOnReorder` in all versions
        of Plone 3.x as it's not been ported upstream yet.  This fixes
        http://plone.org/products/collective.indexing/issues/1
        [witsch]
        
        * Refactor auto-flush monkey-patch to not interfere with testing.
        [witsch]
        
        * Patched CatalogTool.searchResults to process the indexing queue before
        issuing a query (aka auto-flush).
        [stefan]
        
        * Fix test isolation issues and improve test setup.
        [witsch]
        
        * Made sure QueueReducer sorts results by opcode. Unindex operations must
        be handled before (re)index operations.
        [stefan]
        
        * Added processQueue function to process a queue immediately.
        [stefan]
        
        * Fixed testModifyObject in Plone 3.1 by clearing the file's creation flag
        in afterSetUp.
        [stefan]
        
        * Fixed testQueuesOnTwoThreads on Linux by sleeping for a moment so threads
        can do their work.
        [stefan]
        
        1.0b4 - Released June 30th, 2008
        --------------------------------
        
        * Perform processing of the queue during "active" state of the transaction
        as additional changes are forbidden in "committing" state.  Those changes
        can for example be caused by indexes writing back data to content items,
        such as the modification time.
        [witsch, mj]
        
        1.0b3 - Released June 18th, 2008
        --------------------------------
        
        * Fix an issue where objects providing their own `__setattr__` could
        potentially not be deleted.
        [witsch]
        
        1.0b2 - Released June 2nd, 2008
        -------------------------------
        
        * Add `aq_inner` to prevent infinite recursion with `safe_hasattr`.
        [witsch]
        
        1.0b1 - Released May 28, 2008
        -----------------------------
        
        * Make sure we get REQUEST correctly in PathWrapper.
        [tesdal]
        
        1.0a3 - Released May 28, 2008
        -----------------------------
        
        * Respect overridden indexing methods to prevent erroneous indexing and
        generally allow special handling.
        [witsch]
        
        * Fix leftover index entry after renaming an object.
        [witsch]
        
        * The bad monkey smacked back with a vengeance, but was finally tamed.
        [witsch]
        
        * Smacked a bad monkey that was checking for nonexisting attribute
        getObjPositionInParent.
        [tesdal]
        
        1.0a2 - Released May 25, 2008
        -----------------------------
        
        * Fix bug regarding different types in the queue reducer logic.
        [fschulze]
        
        * Fixed renaming of content items by replacing `PloneTool.reindexOnReorder`
        with a saner version that doesn't rely on the catalog.
        [witsch]
        
        * Various fixes, cleanups and optimizations.
        [witsch]
        
        * Fixed monkey patches so that normal indexing remains functional when queued
        indexing has been deactivated (or the GS profile had not been applied yet).
        [witsch]
        
        1.0a1 - Released March 31, 2008
        -------------------------------
        
        * Initial release
        [tesdal, witsch]
        
        
Keywords: plone cmf zope indexing queueing catalog asynchronous
Platform: Any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Other Audience
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
