If you're committing that rapidly then you're correct, filter caching may not be a good fit. The entire _point_ of filter caching is to increase performance of subsequent executions of the exact same fq clause. But if you're throwing them away every second there's little/no benefit.
You really have two choices here 1> lengthen out the commit interval. Frankly, 1 second commit intervals are rarely necessary despite what your product manager says. Really, check this requirement out. 2> disable caches. Autowarming is potentially useful here, but if your filter queries are taking on the order of a second and you're committing every second then autowarming takes too long to help. Best, Erick On Wed, Aug 19, 2015 at 12:26 AM, Mikhail Khludnev <mkhlud...@griddynamics.com> wrote: > Maulin, > Did you check performance with segmented filters which I advised recently? > > On Wed, Aug 19, 2015 at 10:24 AM, Maulin Rathod <mrat...@asite.com> wrote: > >> As per my understanding caches are flushed every time when add new >> document to collection (we do soft commit at every 1 sec to make newly >> added document available for search). Due to which it is not effectively >> uses cache and hence it slow every time in our case. >> >> -----Original Message----- >> From: Toke Eskildsen [mailto:t...@statsbiblioteket.dk] >> Sent: 19 August 2015 12:16 >> To: solr-user@lucene.apache.org >> Subject: Re: Performance issue with FILTER QUERY >> >> On Wed, 2015-08-19 at 05:55 +0000, Maulin Rathod wrote: >> > SLOW WITH FILTER QUERY (takes more than 1 second) >> > ============================================ >> > >> > q=+recipient_id:(4042) AND project_id:(332) AND resource_id:(13332247 >> > 13332245 13332243 13332241 13332239) AND entity_type:(2) AND >> > -action_id:(20 32) ==> This returns 5 records >> > fq=+action_status:(0) AND is_active:(true) ==> This Filter Query >> > returns 9432252 records >> >> The fq is evaluated independently of the q: For the fq a bitset is >> allocated, filled and stored in cache. Then the q is evaluated and the two >> bitsets are merged. >> >> Next time you use the same fq, it should be cached (if you have caching >> enabled) and be a lot faster. >> >> >> Also, if you ran your two tests right after each other, the second one >> benefits from disk caching. If you had executed them in reverse order, the >> q+fq might have been the fastest one. >> >> - Toke Eskildsen, State and University Library, Denmark >> >> >> > > > -- > Sincerely yours > Mikhail Khludnev > Principal Engineer, > Grid Dynamics > > <http://www.griddynamics.com> > <mkhlud...@griddynamics.com>