Thanks for the explanation Eric. So that I understand this clearly....
1) fq=filter(fromfield:[* TO NOW/DAY+1DAY]&& tofield:[NOW/DAY-7DAY TO *]) && fq=type:abc 2) fq= fromfield:[* TO NOW/DAY+1DAY]&& fq=tofield:[NOW/DAY-7DAY TO *]) && fq=type:abc Using 1) would benefit from having 2 separate filter caches instead of 3 slots in the cache. But in general both would be using the filter cache. And secondly it would be more useful to use filter() in a scenario like above(mentioned in your email). Thanks On Mon, May 9, 2016 at 9:43 PM, Erick Erickson <erickerick...@gmail.com> wrote: > You're confusing a query clause with fq when thinking about filter() I > think. > > Essentially they don't need to be used together, i.e. > > q=myclause AND filter(field:value) > > is identical to > > q=myclause&fq=field:value > > both in docs returned and filterCache usage. > > q=myclause&filter(fq=field:value) > > actually uses two filterCache entries, so is probably not what you want to > use. > > the filter() syntax attached to a q clause (not an fq clause) is meant > to allow you to get speedups > you want to use compound clauses without having every combination be > separate filterCache entries. > > Consider the following: > fq=A OR B > fq=A AND B > fq=A > fq=B > > These would require 4 filterCache entries. > > q=filter(A) OR filter(B) > q=filter(A) AND filter(B) > q=filter(A) > q=filter(B) > > would only require two. Yet all of them would be satisfied only by > looking at the filterCache. > > Aside from the example immediately above, which one you use is largely > a matter of taste. > > Best, > Erick > > On Mon, May 9, 2016 at 12:47 PM, Jay Potharaju <jspothar...@gmail.com> > wrote: > > Thanks Ahmet...but I am not still clear how is adding filter() option > > better or is it the same as filtercache? > > > > My question is below. > > > > "As mentioned above adding filter() will add the filter query to the > cache. > > This would mean that results are fetched from cache instead of running n > > number of filter queries in parallel. > > Is it necessary to use the filter() option? I was under the impression > that > > all filter queries will get added to the "filtercache". What is the > > advantage of using filter()?" > > > > Thanks > > > > On Sun, May 8, 2016 at 6:30 PM, Ahmet Arslan <iori...@yahoo.com.invalid> > > wrote: > > > >> Hi, > >> > >> As I understand it useful incase you use an OR operator between two > >> restricting clauses. > >> Recall that multiple fq means implicit AND. > >> > >> ahmet > >> > >> > >> > >> On Monday, May 9, 2016 4:02 AM, Jay Potharaju <jspothar...@gmail.com> > >> wrote: > >> As mentioned above adding filter() will add the filter query to the > cache. > >> This would mean that results are fetched from cache instead of running n > >> number of filter queries in parallel. > >> Is it necessary to use the filter() option? I was under the impression > that > >> all filter queries will get added to the "filtercache". What is the > >> advantage of using filter()? > >> > >> *From > >> doc: > >> > https://cwiki.apache.org/confluence/display/solr/Query+Settings+in+SolrConfig > >> < > >> > https://cwiki.apache.org/confluence/display/solr/Query+Settings+in+SolrConfig > >> >* > >> This cache is used by SolrIndexSearcher for filters (DocSets) for > unordered > >> sets of all documents that match a query. The numeric attributes control > >> the number of entries in the cache. > >> Solr uses the filterCache to cache results of queries that use the fq > >> search parameter. Subsequent queries using the same parameter setting > >> result in cache hits and rapid returns of results. See Searching for a > >> detailed discussion of the fq parameter. > >> > >> *From Yonik's site: http://yonik.com/solr/query-syntax/#FilterQuery > >> <http://yonik.com/solr/query-syntax/#FilterQuery>* > >> > >> (Since Solr 5.4) > >> > >> A filter query retrieves a set of documents matching a query from the > >> filter cache. Since scores are not cached, all documents that match the > >> filter produce the same score (0 by default). Cached filters will be > >> extremely fast when they are used again in another query. > >> > >> > >> Thanks > >> > >> > >> On Fri, May 6, 2016 at 9:46 AM, Jay Potharaju <jspothar...@gmail.com> > >> wrote: > >> > >> > We have high query load and considering that I think the suggestions > made > >> > above will help with performance. > >> > Thanks > >> > Jay > >> > > >> > On Fri, May 6, 2016 at 7:26 AM, Shawn Heisey <apa...@elyograg.org> > >> wrote: > >> > > >> >> On 5/6/2016 7:19 AM, Shawn Heisey wrote: > >> >> > With three separate > >> >> > fq parameters, you'll get three cache entries in filterCache from > the > >> >> > one query. > >> >> > >> >> One more tidbit of information related to this: > >> >> > >> >> When you have multiple filters and they aren't cached, I am > reasonably > >> >> certain that they run in parallel. Instead of one complex filter, > you > >> >> would have three simple filters running simultaneously. For low to > >> >> medium query loads on a server with a whole bunch of CPUs, where > there > >> >> is plenty of spare CPU power, this can be a real gain in performance > ... > >> >> but if the query load is really high, it might be a bad thing. > >> >> > >> >> Thanks, > >> >> Shawn > >> >> > >> >> > >> > > >> > > >> > -- > >> > Thanks > >> > Jay Potharaju > >> > >> > > >> > > >> > >> > >> > >> -- > >> Thanks > >> Jay Potharaju > >> > > > > > > > > -- > > Thanks > > Jay Potharaju > -- Thanks Jay Potharaju