[ 
https://issues.apache.org/jira/browse/LUCENE-3208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13050481#comment-13050481
 ] 

Yonik Seeley commented on LUCENE-3208:
--------------------------------------

I think it's worth to do it in tests... but not as part of the public API 
(weighting yourself is expert level only and most people don't do it).  
Wrapping every weight just makes things uglier, esp if you want to do something 
with the produced weight.


> Move Query.weight() to IndexSearcher as protected method
> --------------------------------------------------------
>
>                 Key: LUCENE-3208
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3208
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/search
>            Reporter: Uwe Schindler
>            Assignee: Uwe Schindler
>             Fix For: 3.3, 4.0
>
>         Attachments: LUCENE-3208.patch, LUCENE-3208.patch
>
>
> 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: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to