[Zope-Checkins] SVN: Zope/trunk/src/Products/ZCatalog/ZCatalog.txt Remove inline tutorial, this is better covered in http://docs.zope.org/zope2/zope2book/SearchingZCatalog.html
Hanno Schlichting
hannosch at hannosch.eu
Sat Jul 31 17:56:20 EDT 2010
Log message for revision 115297:
Remove inline tutorial, this is better covered in http://docs.zope.org/zope2/zope2book/SearchingZCatalog.html
Changed:
D Zope/trunk/src/Products/ZCatalog/ZCatalog.txt
-=-
Deleted: Zope/trunk/src/Products/ZCatalog/ZCatalog.txt
===================================================================
--- Zope/trunk/src/Products/ZCatalog/ZCatalog.txt 2010-07-31 21:54:33 UTC (rev 115296)
+++ Zope/trunk/src/Products/ZCatalog/ZCatalog.txt 2010-07-31 21:56:19 UTC (rev 115297)
@@ -1,147 +0,0 @@
-ZCatalog Tutorial
-
- This document provides a tutorial for 'ZCatalog', the new search
- engine machinery in Zope. The audience for the document is content
- managers.
-
- Contents
-
- o What is it? What's it for? Why's it so cool?
-
- o ZCatalog Objects
-
- o Example using ZCatalog
-
- o Creating Search Forms And Result Reports
-
- o Using ZCatalog In A Zope Site
-
- o ZCatalog vs. Catalog
-
- What is it? What's it for? Why's it so cool?
-
- The 'ZCatalog' provides powerful indexing and searching on a Zope
- database using a Zope management interface. A 'ZCatalog' is a
- Zope object that can be added to a Folder, managed through the
- web, and extended in many ways.
-
- The 'ZCatalog' is a very significant project, providing a number
- of compelling features:
-
- o **Searches are fast**. The data structures used by the index
- provide extremely quick searches without consuming much memory.
-
- o **Searches are robust**. The 'ZCatalog' supports boolean
- search terms, proximity searches, synonyms and stopwords.
-
- o **Indexing is wildly flexible**. A 'ZCatalog' can catalog
- custom properties and track unique values. Since 'ZCatalog'
- catalogs objects instead of file handles, you can index any
- content that can have a Python object wrapped around it. This
- also lets objects participate in how they are cataloged,
- e.g. de-HTML-ifying contents or extracting PDF properties.
-
- o **Usable outside of Zope**. The software is broken into a
- Python 'Catalog' which wrapped by a 'ZCatalog'. The Python
- 'Catalog' can be used in any Python program; all it requires is
- the Z object database and the indexing machinery from Zope.
-
- o **Transactional**. An indexing operation is part of a Zope
- transaction. If something goes wrong after content is indexed,
- the index is restored to its previous condition. This also means
- that Undo will restore an index to its previous condition.
- Finally, a 'ZCatalog' can be altered privately in a Version,
- meaning no one else can see the changes to the index.
-
- o **Cache-friendly**. The index is internally broken into
- different "buckets", with each bucket being a separate Zope
- database object. Thus, only the part of the index that is needed
- is loaded into memory. Alternatively, an un-needed part of the
- index can be removed from memory.
-
- o **Results are lazy**. A search that returns a tremendous
- number of matches won't return a large result set. Only the
- part of the results, such as the second batch of twenty, are
- returned.
-
- The 'ZCatalog' is a free, Open Source part of the Zope software
- repository and thus is covered under the same license as Zope. It
- is being developed in conjunction with the Zope Portal Toolkit
- effort. However, the 'ZCatalog' product is managed as its own
- module in CVS.
-
- ZCatalog Objects
-
- A 'ZCatalog' performs two activities: indexing information and
- performing searches.
-
- Most the work is done in the first step, which is getting objects
- into the index. This is done in two ways. First, if your objects
- are ZCatalog-aware they automatically update the index when they
- are added, edited or directly deleted. *Directly deleted* means
- the object was deleted from a Folder, not the deletion of a
- containing Folder.
-
- The second way that site contents get updated is by "finding"
- information "into" the 'ZCatalog'. An operation based on Zope's
- Find view traverses Folders looking for objects matching the
- criterion. The objects are then registered with the Catalog.
- Objects in the index but no longer in the site are removed from
- the Catalog.
-
- Either way -- automatically updating or walking the Folders --
- 'ZCatalog' indexes the objects it finds. The 'ZCatalog' is set up
- to look for properties, each of which are added to the index.
-
- There are two kinds of indexes, called FieldIndex and TextIndex.
- FieldIndex indexes treat data atomically. The entire contents of a
- FieldIndex-indexed property is treated as a unit. With a
- TextIndex index, it is broken into words which are indexed
- individually. A TextIndex is also known as *full-text index*.
-
- Note that the 'ZCatalog' doesn't track ZCatalog-unaware objects
- after it has indexed them. This means that the 'ZCatalog' must
- reindex its objects occasionally when the objects have been
- changed. Out of date indexes can be prevented by inheriting from
- a ZCatalog-aware class which can tell the 'ZCatalog' to reindex it
- whenever a change is made. Just such a class will be included
- with the Portal toolkit.
-
- ZCatalogs are "searchable objects", meaning they cooperate with Z
- Search Interfaces. Creating a search form for a 'ZCatalog' is a
- simple matter of adding a Z Search Interface from the management
- screen and filling in a form. ZCatalogs can also be queried directly
- from DTML, as shown in the example below.
-
- Using 'ZCatalog' In A Zope Site
-
- The 'ZCatalog' provides high-speed access to what is on your site.
- Thus, the 'ZCatalog' can be used to re-engineer the way your site
- is laid out.
-
- For instance, a Slashdot-style presentation is simple. Just
- insert some DTML that asks the 'ZCatalog' for recent items.
- Alternatively, a Site Map is nothing more than presenting the
- contents of the catalog. A page with tree-based browsing of
- software packages by category is also easy. Perhaps you'd like to
- provide a link that lists all the packages the current user has
- authored.
-
- Thus, the 'ZCatalog' isn't just about searching. It can be used
- as the DTML-scriptable engine for browsing a site as well.
-
- Since the 'ZCatalog' is a normal Zope folderish object, you can
- also create DTML Methods inside it to present the catalog
- contents. For instance, perhaps you'd like to dump the contents
- of the site as an RDF stream, or do content syndication with RSS.
- These are just DTML Methods that change the 'Content-Type:' and
- send back XML. All without actually waking up any of the content
- objects in the site.
-
- ZCatalog vs. Catalog
-
- The real star of this package is the 'Catalog' module. All the
- heavy lifting is done by 'Catalog'. 'ZCatalog' is basically a
- Zope-aware wrapper around Catalog, which can be used on it's own
- outside the Zope framework. The only requirement is that you are
- using ZODB as your object store.
More information about the Zope-Checkins
mailing list