Matt Ronge wrote:
Hi all,

I am working on implementing a new Query, Weight and Scorer that is expensive to run. I'd like to limit the number of documents I run this query on by first building a candidate set of documents with a boolean query. Once I have that candidate set, I was hoping I could build a filter off of it, and issue that along with my expensive query. However, after reading the code I see that filtering is done during the search, and not before hand. So my initial boolean query won't help in limiting the number of documents scored by my expensive query.

Has anyone done any work into restricting the set of docs that a query operates on?
Or should I just implement something myself in a custom scorer?

I think you can use a FilteredQuery in a BooleanClause. This may be faster than the filtering code in the Searcher, because the evaluation is done during scoring and not afterwards. FilteredQuery internally makes use of skipTo(), which should help to limit the number of evaluated docs.


--
Best regards,
Andrzej Bialecki     <><
 ___. ___ ___ ___ _ _   __________________________________
[__ || __|__/|__||\/|  Information Retrieval, Semantic Web
___|||__||  \|  ||  |  Embedded Unix, System Integration
http://www.sigram.com  Contact: info at sigram dot com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to