lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doron Cohen (JIRA)" <>
Subject [jira] Commented: (LUCENE-2876) Remove Scorer.getSimilarity()
Date Thu, 20 Jan 2011 13:44:43 GMT


Doron Cohen commented on LUCENE-2876:

These still need the Similarity param? They use it in scoring, its just they don't pass it
to the superclass constructor (Scorer's constructor).
... Currently TermWeight's local copy of Similarity, which it uses to compute IDF, is private.

You're right, I was for some reason under the impression that part of the reason for the change
is that Weight already exposes Similarity but it is not, and I think it shouldn't, so current
patch is good here.

> Remove Scorer.getSimilarity()
> -----------------------------
>                 Key: LUCENE-2876
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Task
>          Components: Query/Scoring
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>             Fix For: 3.1, 4.0
>         Attachments: LUCENE-2876.patch
> Originally this was part of the patch for per-field Similarity (LUCENE-2236), but I pulled
> out here as its own issue as its really mostly unrelated. I also like it as a separate
> to apply the deprecation to branch_3x to just make less surprises/migration hassles for
4.0 users.
> Currently Scorer takes a confusing number of ctors, either a Similarity, or a Weight
+ Similarity.
> Also, lots of scorers don't use the Similarity at all, and its not really needed in Scorer
> Additionally, the Weight argument is often null. The Weight makes sense to be here in
> its the parent that created the scorer, and used by Scorer itself to support LUCENE-2590's
> But I dont think all queries work with this feature correctly right now, because they
pass null.
> Finally the situation gets confusing if you start to consider delegators like ScoreCachingWrapperScorer,
> which arent really delegating correctly so I'm unsure features like LUCENE-2590 aren't
working with this.
> So I think we should remove the getSimilarity, if your scorer uses a Similarity its already
> to you via your ctor from your Weight and you can manage this yourself.
> Also, all scorers should pass the Weight (parent) that created them, and this should
be Scorer's only ctor.
> I fixed all core/contrib/solr Scorers (even the internal ones) to pass their parent Weight,
just for consistency
> of this visitor interface. The only one that passes null is Solr's ValueSourceScorer.
> I set fix-for 3.1, not because i want to backport anything, only to mark the getSimilarity
deprecated there.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

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

View raw message