No. Please re-read and use the admin plugins/stats page to examine for yourself.
1) fq=filter(fromfield:[* TO NOW/DAY+1DAY]&& tofield:[NOW/DAY-7DAY TO *]) && fq=type:abc && is totally unnecessary when using fq clauses, there is already an implicit AND. I'm not even sure what the above does, I don't quite know off the top of my head how that would be parsed. fq=filter() is unnecessary and in fact (apparently) uses extra filterCache entries to no purpose. I'm guessing you're thinking of something like this q=*:*&fq=(fromfield:[* TO NOW/DAY+1DAY] && tofield:[NOW/DAY-7DAY TO *])&fq=type:abc Would use 2 filterCache entries, or maybe this: (notice this is "q=" not "fq=") q=filter(fromfield:[* TO NOW/DAY+1DAY] && tofield:[NOW/DAY-7DAY TO *]) && filter(type:abc) would use two filter queries as well. Same thing essentially. 2) fq= fromfield:[* TO NOW/DAY+1DAY]&& fq=tofield:[NOW/DAY-7DAY TO *]) && fq=type:abc This is syntactically incorrect, I assume you meant (added left paren and again the && is unnecessary): q=*:*&fq=(fromfield:[* TO NOW/DAY+1DAY] && fq=tofield:[NOW/DAY-7DAY TO *])& fq=type:abc As above the rewritten form would use two filterCache entries. Best, Erick On Mon, May 9, 2016 at 11:03 PM, Jay Potharaju <jspothar...@gmail.com> wrote: > 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