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

Terry Smith edited comment on LUCENE-6590 at 9/28/15 2:38 PM:
--------------------------------------------------------------

Cheers Adrien. Sorry for the spammy replies before -- I wasn't expecting to see 
more than one discrepancy!

While you are looking at the Query.toString() behavior with respect to 
boosting, how would you feel about adding MatchAllDocsQuery.class to 
BoostQuery.NO_PARENS_REQUIRED_QUERIES so it's toString() doesn't change across 
releases?

{noformat}
Query q = new MatchAllDocsQuery();
q.setBoost(0);
q.toString() -> *:*^0.0

new BoostQuery(new MatchAllDocsQuery(), 0).toString() -> (*:*)^0.0
{noformat}


was (Author: shebiki):
Cheers Adrien. Sorry for the spammy replies before -- I wasn't expecting to see 
more than one discrepancy!

While you are looking at the Query.toString() behavior with respect to 
boosting, how would you feel about adding MatchAllDocsQuery.class to 
BoostQuery.NO_PARENS_REQUIRED_QUERIES so it's toString() doesn't change across 
releases?

Query q = new MatchAllDocsQuery();
q.setBoost(0);
q.toString() -> *:*^0.0

new BoostQuery(new MatchAllDocsQuery(), 0).toString() -> (*:*)^0.0


> Explore different ways to apply boosts
> --------------------------------------
>
>                 Key: LUCENE-6590
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6590
>             Project: Lucene - Core
>          Issue Type: Wish
>            Reporter: Adrien Grand
>            Priority: Minor
>             Fix For: 5.4
>
>         Attachments: LUCENE-6590.patch, LUCENE-6590.patch, LUCENE-6590.patch, 
> LUCENE-6590.patch, LUCENE-6590.patch, LUCENE-6590.patch, LUCENE-6590.patch
>
>
> Follow-up from LUCENE-6570: the fact that all queries are mutable in order to 
> allow for applying a boost raises issues since it makes queries bad cache 
> keys since their hashcode can change anytime. We could just document that 
> queries should never be modified after they have gone through IndexSearcher 
> but it would be even better if the API made queries impossible to mutate at 
> all.
> I think there are two main options:
>  - either replace "void setBoost(boost)" with something like "Query 
> withBoost(boost)" which would return a clone that has a different boost
>  - or move boost handling outside of Query, for instance we could have a 
> (immutable) query impl that would be dedicated to applying boosts, that 
> queries that need to change boosts at rewrite time (such as BooleanQuery) 
> would use as a wrapper.
> The latter idea is from Robert and I like it a lot given how often I either 
> introduced or found a bug which was due to the boost parameter being ignored. 
> Maybe there are other options, but I think this is worth exploring.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to