Flexible high level search construction and execution. For Zope 2.11 and above.
AdvancedQuery is a Zope product aimed to overcome several limitations and bugs of ZCatalog’s native search function.
Like ZCatalog search, it supports elementary index searches. While ZCatalog can combine such elementary searches only by “and”, AdvancedQuery allows to arbitrarily combine them by & (and), | (or) and ~ (not). Besides, it supports an extended range of elementary queries, such as matching, indexed queries, literal result sets. Finally, it supports incremental filtering.
AdvancedQuery also extends the sorting capabilities of ZCatalog. ZCatalog supports efficient index based sorting on one level. AdavancedQuery supports sorting on arbitrary levels of field indexes. Furthermore, sorting is performed incrementally – only as far as the result is accessed. This can drastically speed up sorting. Finally, AdvancedQuery can sort based on query based ranks. Unlike ZCatalog which simply ignores hits for which it does not have a sort value, AdvancedQuery sorts such hits at the end of the respective list.
AdvancedQuery works best when used together with Products.ManagableIndex and dm.incrementalsearch. Some of its features depend on these products, e.g. matching and incremental filtering. Furthermore, these additional components can speed up queries by several orders of magnitude.
For more information, see AdvancedQuery.html in the doc subfolder.
- Zope 2.13 compatibility
- fix test suite for Zope 2.12 by dropping ZopeTestCase.framework support. This implies that the test suite can now only be executed via the Zope test runner.