: I was trying to analyze the filter cache performance and noticed a strange : thing. Upon searching with fq, the entry gets added to the cache the first : time. Observing from the "Stats/Plugins" tab on Solr admin UI, the 'lookup' : and 'inserts' count gets incremented. : However, if I search with the same fq again, I expect the lookup and hits : count to increase, but it doesn't. This ultimately results in an incorrect : hitratio.
We'll need to see the actual specifics of the requests you're executing & stats you're seeing in order to make any guesses as to why you're not seeing the expected outcome. Wild guesses: - Are you use Date math based fq params that don't round? - Are you using SolrCloud and some of your requests are getting routed to different replicas? - Are you using some complex/custom filter impl that may have a bug in it's equals/hashCode impl that prevents it from being a cache hit? Here's an example showing that the basics of filterCache work find with 8.5 for trivial examples... $ bin/solr -e techproducts ... $ curl -sS 'http://localhost:8983/solr/techproducts/admin/mbeans?wt=json&indent=true&category=CACHE&stats=true&key=filterCache' | grep 'CACHE.searcher.filterCache' "CACHE.searcher.filterCache.hits":0, "CACHE.searcher.filterCache.cumulative_evictions":0, "CACHE.searcher.filterCache.cleanupThread":false, "CACHE.searcher.filterCache.size":0, "CACHE.searcher.filterCache.maxRamMB":-1, "CACHE.searcher.filterCache.hitratio":0.0, "CACHE.searcher.filterCache.warmupTime":0, "CACHE.searcher.filterCache.idleEvictions":0, "CACHE.searcher.filterCache.evictions":0, "CACHE.searcher.filterCache.cumulative_hitratio":0.0, "CACHE.searcher.filterCache.lookups":0, "CACHE.searcher.filterCache.cumulative_hits":0, "CACHE.searcher.filterCache.cumulative_inserts":0, "CACHE.searcher.filterCache.ramBytesUsed":1328, "CACHE.searcher.filterCache.cumulative_idleEvictions":0, "CACHE.searcher.filterCache.inserts":0, "CACHE.searcher.filterCache.cumulative_lookups":0}}}, $ curl -sS 'http://localhost:8983/solr/techproducts/query?q=*:*&fq=inStock=true' > /dev/null $ curl -sS 'http://localhost:8983/solr/techproducts/admin/mbeans?wt=json&indent=true&category=CACHE&stats=true&key=filterCache' | grep 'CACHE.searcher.filterCache' "CACHE.searcher.filterCache.hits":0, "CACHE.searcher.filterCache.cumulative_evictions":0, "CACHE.searcher.filterCache.cleanupThread":false, "CACHE.searcher.filterCache.size":1, "CACHE.searcher.filterCache.maxRamMB":-1, "CACHE.searcher.filterCache.hitratio":0.0, "CACHE.searcher.filterCache.warmupTime":0, "CACHE.searcher.filterCache.idleEvictions":0, "CACHE.searcher.filterCache.evictions":0, "CACHE.searcher.filterCache.cumulative_hitratio":0.0, "CACHE.searcher.filterCache.lookups":1, "CACHE.searcher.filterCache.cumulative_hits":0, "CACHE.searcher.filterCache.cumulative_inserts":1, "CACHE.searcher.filterCache.ramBytesUsed":4808, "CACHE.searcher.filterCache.cumulative_idleEvictions":0, "CACHE.searcher.filterCache.inserts":1, "CACHE.searcher.filterCache.cumulative_lookups":1}}}, $ curl -sS 'http://localhost:8983/solr/techproducts/query?q=name:solr&fq=inStock=true' > /dev/null $ curl -sS 'http://localhost:8983/solr/techproducts/admin/mbeans?wt=json&indent=true&category=CACHE&stats=true&key=filterCache' | grep 'CACHE.searcher.filterCache' "CACHE.searcher.filterCache.hits":1, "CACHE.searcher.filterCache.cumulative_evictions":0, "CACHE.searcher.filterCache.cleanupThread":false, "CACHE.searcher.filterCache.size":1, "CACHE.searcher.filterCache.maxRamMB":-1, "CACHE.searcher.filterCache.hitratio":0.5, "CACHE.searcher.filterCache.warmupTime":0, "CACHE.searcher.filterCache.idleEvictions":0, "CACHE.searcher.filterCache.evictions":0, "CACHE.searcher.filterCache.cumulative_hitratio":0.5, "CACHE.searcher.filterCache.lookups":2, "CACHE.searcher.filterCache.cumulative_hits":1, "CACHE.searcher.filterCache.cumulative_inserts":1, "CACHE.searcher.filterCache.ramBytesUsed":4808, "CACHE.searcher.filterCache.cumulative_idleEvictions":0, "CACHE.searcher.filterCache.inserts":1, "CACHE.searcher.filterCache.cumulative_lookups":2}}}, ...so the first time we use 'fq=inStock:true' we get a single lookup and a single insert. he second time we use it (even with a different 'q' param) we get our 2nd lookup and our 1st hit -- no new inserts -- and now we have a 50% hitratio. how does that compare with what you see? what do similar commands show you with your fq? -Hoss http://www.lucidworks.com/