My current feeling is that bare BTrees are best for most in-app search use cases. Catalogs often seem to add a lot of extra complexity.

For more complex searches (e.g. content search in a web site or CMS), one of my current fantasies is a search server built on Lucene, fed updates via ZRS and returning object ids from queries that are fed to a batch mostly-asynchronous retrieval API for ZEO (or even relstorage).