That's the problem right - none of them are public, and even neither is the constructor of `ConjunctionScorer`. Moreover, `ConjunctionScorer` needs access to list of sub-scorers to emit the doc and score. Information like this has to come from the `BooleanWeight`, which is another hack if I want to leverage this.
On Thu, Oct 22, 2015 at 9:22 AM, Alan Woodward <a...@flax.co.uk> wrote: > 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 > >> > >> > >