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

Reply via email to