lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: lucene-4.0: QueryWrapperFilter & docBase
Date Mon, 08 Oct 2012 09:28:29 GMT
Hi,

This is a known problem currently. I think there is already an issue open, so this was not
solved for 4.0 (I don't have the issue no available at the moment).

My plan to fix this is to make Filters behave like queries (with a rewrite() method), so the
correct context can be passed to a "rewritten" filter (when QueryWrapperFilter rewrites, it
rewrites also the query). The current approach is for performance reasons, because without
rewrite, you would have no persistent "state" information between index segments, so the Query
has to be rewritten on the top-level index for every segment again. By the current approach,
the query is only rewritten against the current segment with a private IndexSearcher. By that
process the docBase gets lost. So currently this does not work.

I would recommend to *not* use QueryWrapperFilter and instead wrap with ConstantScoreQuery
and add it to the query as a Boolean MUST clause. In that case it should work fine. There
is no performance increase by using QueryWrapperFilter, so no reason to use it.

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: Thomas Matthijs [mailto:lists@selckin.be]
> Sent: Monday, October 08, 2012 11:13 AM
> To: java-user@lucene.apache.org
> Subject: lucene-4.0: QueryWrapperFilter & docBase
> 
> Hello,
> 
> I have some custom queries & scorer that need to able to construct the "global"
> docIds (doc + docBase).
> 
> But when i use these in a QueryWrapperFilter they no longer work, because
> QueryWrapperFilter.getDocIdSet uses a "private context"
> (context.reader().getContext();) which always has a docBase of 0, and this is
> definitely called for every segment as far as i can see, so the correct docBase is
> lost here, I tried to naively change it to pass the original context but that blows
> up in asserts, I don't really understand how this all should work.
> 
> How do i get the correct docBase in scorers when using QueryWrappedFilter ?
> 
> Let me know if you want an example/test.
> 
> Thanks
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message