[
https://issues.apache.org/jira/browse/LUCENE-2880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Muir updated LUCENE-2880:
--------------------------------
Attachment: LUCENE-2880.patch
Here's a quickly hacked up patch (core tests pass, but i didnt go fixing
contrib, etc yet).
Its just to get ideas.
The approach I took was for SpanQuery to have a new method:
{noformat}
/**
* Returns the length (number of positions) in the query.
* <p>
* For example, for a simple Term this is 1.
* For a NEAR of "foo" and "bar" this is 2.
* This is used by SpanScorer to compute the appropriate slop factor,
* so that SpanQueries score consistently with other queries.
*/
public abstract int getLength();
{noformat}
This is called once by the Weight, and passed to SpanScorer.
Then SpanScorer computes the slop as:
{noformat}
int matchLength = (spans.end() - spans.start()) - queryLength;
{noformat}
instead of:
{noformat}
int matchLength = spans.end() - spans.start();
{noformat}
> SpanQuery scoring inconsistencies
> ---------------------------------
>
> Key: LUCENE-2880
> URL: https://issues.apache.org/jira/browse/LUCENE-2880
> Project: Lucene - Java
> Issue Type: Bug
> Reporter: Robert Muir
> Fix For: 4.0
>
> Attachments: LUCENE-2880.patch
>
>
> Spinoff of LUCENE-2879.
> You can see a full description there, but the gist is that SpanQuery sums up
> freqs with "sloppyFreq".
> However this slop is simply spans.end() - spans.start()
> For a SpanTermQuery for example, this means its scoring 0.5 for TF versus
> TermQuery's 1.0.
> As you can imagine, I think in practical situations this would make it
> difficult for SpanQuery users to
> really use SpanQueries for effective ranking, especially in combination with
> non-Spanqueries (maybe via DisjunctionMaxQuery, etc)
> The problem is more general than this simple example: for example
> SpanNearQuery should be consistent with PhraseQuery's slop.
--
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]