[ 
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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to