[ https://issues.apache.org/jira/browse/LUCENE-850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509998 ]
Mike Klaas commented on LUCENE-850: ----------------------------------- Hi Doron, The main use case is the same as for documents (and to a lesser extent, field-) boosts: the ability to weight a document by a certain amount (rather than adding an additive boost, as adding an additional subclause to the query would entail). The function query capability works for many situations, as you can store the various types of boosts in a FieldCache and use your approach. But this doesn't scale when there are tons of possible boost fields (which would usually be sparsely-populated). SparseFieldCache, anyone? I decided to move away from ProductQueries for the time being, so that is no longer the main use case of this patch. Primarily the patch stems from developer frustration of implementing something like ProductQuery. ISTM that the subquery-handling logic (present in BooleanQuery and slightly different in DisMaxQuery) needn't be so tightly coupled with a choice of scoring function. For the record, DisMax is actually a ( x*Max + (1-x)*Sum ) Query, so it is both Sum and Max. Perhaps if we add Prod to the options, there are no more useful subquery combinators? > Easily create queries that transform subquery scores arbitrarily > ---------------------------------------------------------------- > > Key: LUCENE-850 > URL: https://issues.apache.org/jira/browse/LUCENE-850 > Project: Lucene - Java > Issue Type: New Feature > Components: Search > Reporter: Mike Klaas > Attachments: prodscorer.patch.diff > > > Refactor DisMaxQuery into SubQuery(Query|Scorer) that admits easy > subclassing. An example is given for multiplicatively combining scores. > Note: patch is not clean; for demonstration purposes only. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]