Some of our site's categories are actually search driven. They're created manually by crafting a Solr query our of list of Lucene queries that are joined in a DisjunctionMaxQuery. There are often 100+ disjuncts in this query.
This works nicely, but is much slower than it could be because many parts of the disjuncts could be cached -- both filters and queries -- but none are because only the top-level DisjunctionMaxQuery is fed to the SolrIndexSearcher. We're looking for ways to speed this up. One way we've considered is sending each of the disjuncts to the SolrIndexSearcher and then merging a the DocLists manually. My concern is that this would lose the query normalization that happens in DisjunctionMaxQuery. This seems like a common problem: how to cache parts of a complex Solr query individually. Any ideas or common patterns for solving it? Thanks. --Gregg Gregg Donovan Senior Software Engineer, Etsy.com gregg...@gmail.com