lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eks dev <>
Subject Re: speed of BooleanQueries on 2.9
Date Thu, 16 Jul 2009 10:38:49 GMT

I am getting lost as well, maybe I managed to confuse myself and everybody else here. 

But all agree, it would be good to know why it works now

Re. Query rewriting. 

This Query gets printed with 
BooleanQuery q;
search(q, null, 200):

=> this is the Query that enters this method.

and this String has exactly that form
(x OR y OR z) OR (a OR b OR c), 
That is exactly how I construct the Query, have a look at brackets on this toString result
I have absolutely no influence on rewriting , everything happens at BoolenQuery/Clause level
using legal, high level api... have no idea... 

Will try some other, equally crazy  things, to run it with  +(x OR y OR z) OR +(a OR b OR
c),  to check if it gets stuck on older trunk (the version with problems) in this setup. Just
to see if setting setAllowDocsOutOfOrder(true/false)  has some unbelievable side effects on
places where it should not ... 
the idea is:
setAllowDocsOutOfOrder(true) and MUST terms, should have the same effect as setAllowDocsOutOfOrder(false)
.... so, if it gets stuck there we have some other side effects... 

No matter how confusing, trunk version without these 2 patches makes this query stuck... 

later today I will rollback trunk to see which patch fixed it ... reduces number of puzzle


----- Original Message ----
> From: Michael McCandless <>
> To:
> Sent: Thursday, 16 July, 2009 11:47:34
> Subject: Re: speed of BooleanQueries on 2.9
> On Thu, Jul 16, 2009 at 5:21 AM, eks devwrote:
> > Trace taken on trunk version (with fixed Yonik's bug and LUCENE-1744 tha fixed 
> the problem somehow)
> Whoa, so LUCENE-1744 did in fact fix the problem?  (I thought you had
> accidentally failed to setAllowDocsOutOfOrder(true) and that made us
> falsely think it had fixed it when it had not).  I keep getting
> confused here.
> From the trace I can see you have a toplevel BS that somehow uses 2
> BS2 sub-scorers.  I don't get how the query you posted can do that --
> your query should get rewritten to a big OR-query such that we see a
> BS with many TermScorers as its subscorers.  Ie it's as if you're
> somehow actually running a query like this:
>     (x OR y OR z) OR (a OR b OR c)
> Mike
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message