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
>> 
>> 

Reply via email to