lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tomás Fernández Löbbe <tomasflo...@gmail.com>
Subject Re: queryResultMaxDocsCached vs. queryResultWindowSize
Date Wed, 24 Sep 2014 21:27:41 GMT
I think you are right. I think the name is this because it’s considering a
series of queries paging a result. The first X pages are going to be
cached, but once the limit is reached, no further pages are and the last
superset that fitted remains in cache. At least that’s my understanding.
After a quick look, I couldn’t find a test case for this either.

Tomás

On Wed, Sep 24, 2014 at 11:10 AM, Tom Burton-West <tburtonw@umich.edu>
wrote:

> Hello,
>
> No response on the Solr user list so I thought I would try the dev list.
>
>
> queryResultWindowSize sets the number of documents  to cache for each
> query in the queryResult cache.    So if you normally output 10 results per
> page, and users don't go beyond page 3 of results, you could set
> queryResultWindowSize to 30 and the second and third page requests will
> read from cache, not from disk.  This is well documented in both the Solr
> example solrconfig.xml file and the Solr documentation.
>
> However, the example in solrconfig.xml and the documentation in the
> reference manual for Solr 4.10 say that queryResultMaxDocsCached :
>
> "sets the maximum number of documents to cache for any entry in the
> queryResultCache".
>
> Looking at the code  it appears that the queryResultMaxDocsCached
> parameter actually tells Solr not to cache any results list that has a size
>  over  queryResultMaxDocsCached:.
>
> From:  SolrIndexSearcher.getDocListC
> // lastly, put the superset in the cache if the size is less than or equal
>     // to queryResultMaxDocsCached
>     if (key != null && superset.size() <= queryResultMaxDocsCached &&
> !qr.isPartialResults()) {
>       queryResultCache.put(key, superset);
>     }
>
> Deciding whether or not to cache a DocList if its size is over N (where N
> = queryResultMaxDocsCached) is very different than caching only N items
> from the DocList which is what the current documentation (and the variable
> name) implies.
>
> Looking at the JIRA issue https://issues.apache.org/jira/browse/SOLR-291
> the original intent was to control memory use and the variable name
> originally suggested was  "noCacheIfLarger"
>
> Can someone please let me know if it is true that the
> queryResultMaxDocsCached parameter actually tells Solr not to cache any
> results list that contains over the  queryResultMaxDocsCached?
>
> If so, I will add a comment to the Cwiki doc and open a JIRA and submit a
> patch to the example file.
>
> I tried to find a test case that excercises SolrIndexSearcher.getDocListC
> so I could see how  queryResultWindowSize or queryResultMaxDocsCached
> actually work in the debugger but could not find a test case.  Could
> someone please point me to a good test case that either excercises
> SolrIndexSearcher.getDocListC or would be a good starting point for writing
> one?
>
>
> Tom
>
>
>
> ---------------------------
>
>
> http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_10/solr/example/solr/collection1/conf/solrconfig.xml?revision=1624269&view=markup
>
> 635     <!-- Maximum number of documents to cache for any entry in the
> 636 queryResultCache.
> 637 -->
> 638 <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
>

Mime
View raw message