: Pretty much every one of my queries is going to be unique. However, the 
: query is fairly complex and also contains both unique and non-unique 
: data. In the query, some fields will be unique (e.g description), but 
: other fields will be fairly common (e.g. category). If we could use 
: those common fields as filters, it would be easy to use the filter 
: cache. I could just separate the filters and let the filter cache do its 
: thing. Unfortunately, due to the nature of our application, pretty much 
: every field is just a boost.
        ...
: Is there anyway to cache part of the query? Or basically cache 
: subqueries? I have my own request handler, so I am willing to write the 
: necessary code. I am fearful that the best performance may be to just 
: turn off caching.

One thing a custom plugin could possibly do in cases like this is to use 
the filterCache to cache the "DocSets" corripsonding to the re-used 
portions of your queries (on a graunular level) and then wrap those 
DocSets in a Query facade to build them up into a big BooleanQuery -- 
which you should explicitly make sure Solr does not cache (because the 
Query objects will be *huge* if they contain all those DocSets wrapped up)

Note: i did this once a *long* time ago and it wokred out ok, but this may 
be a lot harder now that we have per segment searching/scoring -- i'm not 
sure that the Query/Scorer API gives you everything you need to be able to 
return segment based docIds from a global DocSet.



-Hoss

Reply via email to