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]