[ 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