Alex, Not to be a pain, but the response I had when looking at the query was, why not do this in a SQL database, which is designed precisely to process this sort of request at speed? I've noticed that people sometimes try to get Solr to act as a generalized information store -- I'm not sure that's what you're doing, but be aware of this pitfall.
jds On Jan 3, 2008 12:52 AM, Alex Benjamen <[EMAIL PROTECTED]> wrote: > Mike, > > Thanks for the input, it's really valueable. Several forum users have > suggested using fq to separate > the caching of filters, and I can immediately see how this would help. I'm > changing the code right now > and going to run some benchmarks, hopefully see a big gain just from that > > > > - use range queries when querying contiguous disjunctions (age:[28 TO 33] > > rather than what you have above). > I actually started with the above, using int type field, and it somehow > seemed slower than using explicit, but I will > certainly try again. > > > > - convert the expensive, heap-based age filter disjunction into a bitset > > created directly from the term enum > Can you pls. elaborate a little more? Are you advising to use fq=age:[28 TO > 33], or should that simply be part > of the regular query? Also, what is the best "type" to use when defining age? > I'm currently using "text", should > I use "int" instead... I didn't see any difference with using the type "int". > > One of the issues is that the age ranges are not "pre-defined" - they can be > any combination, 22-23, 22-85, 45-49, etc. > I realize that pre-defining age ranges would drastically improve performance > but then we're greatly reducing the value > of this type of search > > Thanks, > Alex >