You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/08/15 19:05:27 UTC

svn commit: r1514379 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/highlighter/ lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/ lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/

Author: rmuir
Date: Thu Aug 15 17:05:26 2013
New Revision: 1514379

URL: http://svn.apache.org/r1514379
Log:
LUCENE-5166: also fix and test this case where tf > 1 within the passage for a term

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/highlighter/   (props changed)
    lucene/dev/branches/branch_4x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
    lucene/dev/branches/branch_4x/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestPostingsHighlighter.java

Modified: lucene/dev/branches/branch_4x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java?rev=1514379&r1=1514378&r2=1514379&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java Thu Aug 15 17:05:26 2013
@@ -563,7 +563,7 @@ public class PostingsHighlighter {
           start = dp.startOffset();
           end = dp.endOffset();
         }
-        if (start >= current.endOffset) {
+        if (start >= current.endOffset || end > contentLength) {
           pq.offer(off);
           break;
         }

Modified: lucene/dev/branches/branch_4x/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestPostingsHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestPostingsHighlighter.java?rev=1514379&r1=1514378&r2=1514379&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestPostingsHighlighter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestPostingsHighlighter.java Thu Aug 15 17:05:26 2013
@@ -85,12 +85,42 @@ public class TestPostingsHighlighter ext
     ir.close();
     dir.close();
   }
+
+  public void testFormatWithMatchExceedingContentLength2() throws Exception {
+    
+    String bodyText = "123 TEST 01234 TEST";
+
+    String[] snippets = formatWithMatchExceedingContentLength(bodyText);
+    
+    assertEquals(1, snippets.length);
+    assertEquals("123 <b>TEST</b> 01234 TE", snippets[0]);
+  }
+
+  public void testFormatWithMatchExceedingContentLength3() throws Exception {
+    
+    String bodyText = "123 5678 01234 TEST TEST";
+    
+    String[] snippets = formatWithMatchExceedingContentLength(bodyText);
+    
+    assertEquals(1, snippets.length);
+    assertEquals("123 5678 01234 TE", snippets[0]);
+  }
   
   public void testFormatWithMatchExceedingContentLength() throws Exception {
-          
-    int maxLength = 17;
+    
     String bodyText = "123 5678 01234 TEST";
     
+    String[] snippets = formatWithMatchExceedingContentLength(bodyText);
+    
+    assertEquals(1, snippets.length);
+    // LUCENE-5166: no snippet
+    assertEquals("123 5678 01234 TE", snippets[0]);
+  }
+
+  private String[] formatWithMatchExceedingContentLength(String bodyText) throws IOException {
+    
+    int maxLength = 17;
+    
     final Analyzer analyzer = new MockAnalyzer(random());
     
     Directory dir = newDirectory();
@@ -121,12 +151,9 @@ public class TestPostingsHighlighter ext
     String snippets[] = highlighter.highlight("body", query, searcher, topDocs);
     
     
-    assertEquals(1, snippets.length);
-    // LUCENE-5166: no snippet
-    assertEquals("123 5678 01234 TE", snippets[0]);
-    
     ir.close();
     dir.close();
+    return snippets;
   }
   
   // simple test highlighting last word.