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

Reply via email to