[
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]