lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Created] (LUCENE-3208) Move Query.weight() to IndexSearcher as protected method
Date Thu, 16 Jun 2011 08:21:47 GMT
Move Query.weight() to IndexSearcher as protected method

                 Key: LUCENE-3208
             Project: Lucene - Java
          Issue Type: Bug
          Components: core/search
            Reporter: Uwe Schindler
            Assignee: Uwe Schindler
             Fix For: 3.3, 4.0

We had this issue several times, latest in LUCENE-3207.

The method Query.weight() was left in Query for backwards reasons in Lucene 2.9 when we changed
Weight class. This method is only to be called on top-level queries - and this is done by
IndexSearcher. This method is just a utility method, that has nothing to do with the query
itsself (it just combines the createWeight method and calls the normalization afterwards).

The problem we have is that any query that wraps other queries (like CustomScore, ConstantScore,
Boolean) calls Query.weight() instead of Query.createWeight(), it will do normalization two
times, leading to strange bugs.

For 3.3 I will make Query.weight() simply delegate to IndexSearcher's replacement method with
a big deprecation warning, so user sees this. In IndexSearcher itsself the method will be
protected to only be called by itsself or subclasses of IndexSearcher. Delegation for backwards
is no problem, as protected is accessible by classes in same package.

I would suggest the method name to be IndexSearcher.createNormalizedWeight(Query q)

This message is automatically generated by JIRA.
For more information on JIRA, see:


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

View raw message