Yeah - coming up.

Yonik Seeley wrote:
> This probably warrants a CHANGES entry?
>
> -Yonik
> http://www.lucidimagination.com
>
>
>
> On Fri, Oct 23, 2009 at 1:07 PM,  <markrmil...@apache.org> wrote:
>   
>> Author: markrmiller
>> Date: Fri Oct 23 17:07:22 2009
>> New Revision: 829128
>>
>> URL: http://svn.apache.org/viewvc?rev=829128&view=rev
>> Log:
>> LUCENE-2003: Highlighter doesn't respect position increments other than 1 
>> with PhraseQuerys
>>
>> Modified:
>>    
>> lucene/java/branches/lucene_2_9/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
>>
>> Modified: 
>> lucene/java/branches/lucene_2_9/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
>> URL: 
>> http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_9/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=829128&r1=829127&r2=829128&view=diff
>> ==============================================================================
>> --- 
>> lucene/java/branches/lucene_2_9/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
>>  (original)
>> +++ 
>> lucene/java/branches/lucene_2_9/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
>>  Fri Oct 23 17:07:22 2009
>> @@ -109,13 +109,32 @@
>>         }
>>       }
>>     } else if (query instanceof PhraseQuery) {
>> -      Term[] phraseQueryTerms = ((PhraseQuery) query).getTerms();
>> +      PhraseQuery phraseQuery = ((PhraseQuery) query);
>> +      Term[] phraseQueryTerms = phraseQuery.getTerms();
>>       SpanQuery[] clauses = new SpanQuery[phraseQueryTerms.length];
>>       for (int i = 0; i < phraseQueryTerms.length; i++) {
>>         clauses[i] = new SpanTermQuery(phraseQueryTerms[i]);
>>       }
>> +      int slop = phraseQuery.getSlop();
>> +      int[] positions = phraseQuery.getPositions();
>> +      // add largest position increment to slop
>> +      if (positions.length > 0) {
>> +        int lastPos = positions[0];
>> +        int largestInc = 0;
>> +        int sz = positions.length;
>> +        for (int i = 1; i < sz; i++) {
>> +          int pos = positions[i];
>> +          int inc = pos - lastPos;
>> +          if (inc > largestInc) {
>> +            largestInc = inc;
>> +          }
>> +          lastPos = pos;
>> +        }
>> +        if(largestInc > 1) {
>> +          slop += largestInc;
>> +        }
>> +      }
>>
>> -      int slop = ((PhraseQuery) query).getSlop();
>>       boolean inorder = false;
>>
>>       if (slop == 0) {
>>
>>
>>
>>     
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>
>   


-- 
- Mark

http://www.lucidimagination.com




---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to