IncrementalSearch2 0.1 ====================== This is an efficient (low level) search engine for the execution of "and", "or" and "not" queries. Unlikes Zope's standard search (implemented in its "ZCatalog"), "IncrementalSearch2" determines the search hits incrementally (one hit at a time) and interleaves hit determination with index lookup. It avoids the construction of large intermediate results and often touches far fewer index objects. The result: reduced search times and lower cache load.
The gain in search time can be several orders of magnitude (for highly specific "and" queries). The gain is much lower, when the search contains large "or" subqueries. We measured gains in the order of 20 to 35 % in this case. Pure "or" queries are slightly slower than when executed with the traditional search -- about 5 %. To be effective, the indexes involved in the search must support "IncrementalSearch2". Currently, this holds only for "ManagableIndex". "IncrementalSearch2" is (in some sense) the C implementation of "IncrementalSearch". It drastically improves the speed for "or" queries. Currently, "IncrementalSearch2" is only tested on Linux for ZODB 3.2 (Zope 2.7.x). It may not work on different platforms or for different ZODB versions. I provide the source only (i.e. you must compile the C extension). ManagableIndex 1.0 ================== "ManagableIndex" deliveres a set of highly efficient, flexible and customizable indexes: "FieldIndex", "KeywordIndex", "PathIndex", "RangeIndex", "WordIndex". All of them are custumized via the Zope Management Interface (that's where their name comes from). They are much more flexible and orthogonal than Zope's standard indexes and are more reliable (unlike for Zope's indexes, there are no known problems). If installed, they use "IncrementalSearch2" which can drastically speed up searches. Developpers can use "ManagableIndex" as a framework for the easy construction of new indexes. AdvancedQuery 1.0 ================= "AdvancedQuery" is a (high level) search engine extending the search capabilities of Zope's ZCatalog. While "ZCatalog" can combine subqueries for individual indexes with "and" only, "AdvancedQuery" allows them to be arbitrarily combined with "and", "or" and "not". The effects: higher search power, much more readable queries, much more uniform and orthogonal index design. "AdvancedQuery" also extends "ZCatalog"s sorting capability. While "ZCatalog" allows sorting only via a single index, "AdvancedQuery" supports multi-level sorting (i.e. via more than one index). Furthermore, it sorts incrementally (only as far in the result list as you access it). This can drastically reduce sorting time. "AdvancedQuery" uses "IncrementalSearch2", if it is installed. Provided the indexes support "IncrementalSearch2" as well, this can drastically reduce search time (see above). Download -------- More information and download: <http://www.dieter.handshake.de/pyprojects/zope> -- Dieter _______________________________________________ Zope-Announce maillist - Zope-Announce@zope.org http://mail.zope.org/mailman/listinfo/zope-announce Zope-Announce for Announcements only - no discussions (Related lists - Users: http://mail.zope.org/mailman/listinfo/zope Developers: http://mail.zope.org/mailman/listinfo/zope-dev )