You should be able to use a FilterScorer that wraps a ConjunctionScorer and overrides score().
Alan Woodward www.flax.co.uk On 22 Oct 2015, at 13:43, Sheng wrote: > Thanks for the reply and suggestion. If I search for term A and term B with > a BooleanQuery in Lucene, normally Lucene returns documents that have a > match of both A and B. Now I am using payload to vary the scores w.r.t > search of term A and search of term B, so it is possible for example a > document has both match of term A and term B, but only the score for term A > is 0. In this case, I want Lucene does not return this document at all. > However the internal ConjunctionScorer will just sum up the scores returned > by both subquery of A and B, thus the document has a score > 0 returned by > the BooleanQuery, and therefore it cannot be filtered by a > PositiveScoreOnlyCollector. I know hacking into ConjunctionScorer probably > is too intrusive, but wondering if there is a better way to achieve the > same effect ? > > On Thu, Oct 22, 2015 at 4:13 AM, Uwe Schindler <u...@thetaphi.de> wrote: > >> Hi, >> >> Those are internal classes and not to be extended (not only the >> constructor is pkg-private, the whole class is: https://goo.gl/5WyLYz)! >> Scorers follow the delegator pattern. If you want to modify the behaviour >> of a Scorer, create a delegator scorer (e.g. some Filtering Scorer) and >> change its behaviour (e.g. filter additional documents,...). This can be >> done by a query that filters other querys. E.g. look at ConstantScoreQuery >> or similar queries that wrap other scorers. >> >> Subclassing ConjunctionScorer would bring you nothing because internals >> are still private - and that's good. >> >> Uwe >> >> ----- >> Uwe Schindler >> H.-H.-Meier-Allee 63, D-28213 Bremen >> http://www.thetaphi.de >> eMail: u...@thetaphi.de >> >> >>> -----Original Message----- >>> From: Sheng [mailto:sheng...@gmail.com] >>> Sent: Wednesday, October 21, 2015 7:03 PM >>> To: java-user@lucene.apache.org >>> Subject: ConjunctionScorer access >>> >>> It's a bummer Lucene makes the constructor of ConjunctionScorer non- >>> public. I wanted to extend from this class in order to tweak its >> behavior for >>> my use case. Is it possible to change it to protected in future releases >> ? >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> For additional commands, e-mail: java-user-h...@lucene.apache.org >> >>