hossman wrote:
> 
> 
> : I want a couple of costly queries to be cached at all times in the
> : queryResultCache. (unless I have a new searcher of course) 
> 
> first off: you can ensure that certain queries are in the cache, even if 
> there is a newSearcher, just configure a newSearcher Event Listener that 
> forcibly warms the queries you care about.
> 
> (this is particularly handy to ensure FieldCache gets populated before any 
> user queries are processed)
> 
> Second: if i understand correctly, you want a way to put an object in the 
> cache, and garuntee that it's always in the cache, even if other objects 
> are more frequetnly used or more recently used?
> 
> that's kind of a weird use case ... can you elaborate a little more on 
> what exactly your end goal is?
> 
> 

Sure.  Actually i got the idea of another thread posted by Thomas to which
you gave a reply a few days ago: 
http://www.nabble.com/Result-grouping-options-tf4522284.html#a12900630. 
I quote the relevant bits below, although I think you remember: 


hossman wrote:
> 
> : Is it possible to use faceting to not only get the facet count but also
> the
> : top-n documents for every facet
> : directly? If not, how hard would it be to implement this as an
> extension?
> 
> not hard ... a custom request handler could subclass
> StandardRequestHandler, call super.handleRequest, and then pull the field
> faceting info out of the response object, and fetch a DocList for each of
> the top N field constraints.
> 

I have about a dozen queries that I want to have permanently cached, each
corresponding to a particular navigation page. Each of these pages has up to
about 10 top-N lists which are populated as discussed above. These lists are
pretty static (updated once a day, together with the index). 

The above would enable me to populate all the lists on a single page in 1
pass. Correct? 
Although I haven't tried yet, I can't imagine that this request returns in
sub-zero seconds, which is what I want (having a index of about 1M docs with
6000 fields/ doc and about 10 complex facetqueries / request). 

The navigation-pages are pretty important for, eh well navigation ;-) and
although I can rely on frequent access of these pages most of the time, it
is not guarenteed (so neither is the caching)


hossman wrote:
> 
> the most straightforward approach i can think of would be a new cache 
> implementation that "permenantly" stores the first N items you put in it.  
> that in combination with the newSearcher warming i described above should 
> work.
> 
> : 1. use User/Generic-cache. This would result in seperate coding-path in
> : application which I would like to avoid. 
> : 2. exend LRU-cache, and extend request-handler so that a query can be
> : extended with a parameter indicating that it should be cached at all
> times.
> : However, this seems like a lot of cluttering-up these interfaces, for a
> : relatively small change. 
> 
> #1 wouldn't really accomplish what you want without #2 as well.
> 
> 
> 
> -Hoss
> 
> 
> 

regarding #1. 
Wouldn't making a user-cache for the sole-purpose of storing these queries
be enough? I could then reference this user-cache by name, and extract the
correct queryresult. (at least that's how I read the documentation, I have
no previous experience with the user-cache mechanism).  In that case I don't
need #2 right? Or is this for another reason not a good way to handle
things? 

//Geert-Jan

-- 
View this message in context: 
http://www.nabble.com/how-to-make-sure-a-particular-query-is-ALWAYS-cached-tf4566711.html#a13048285
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to