You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ko...@apache.org on 2010/08/25 14:04:05 UTC

svn commit: r989035 - in /lucene/dev/trunk/lucene: CHANGES.txt contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java

Author: koji
Date: Wed Aug 25 12:04:05 2010
New Revision: 989035

URL: http://svn.apache.org/viewvc?rev=989035&view=rev
Log:
LUCENE-2616: FastVectorHighlighter: out of alignment when the first value is empty in multiValued field

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
    lucene/dev/trunk/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=989035&r1=989034&r2=989035&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Wed Aug 25 12:04:05 2010
@@ -486,6 +486,9 @@ Bug fixes
   can cause the same document to score to differently depending on
   what segment it resides in. (yonik)
 
+* LUCENE-2616: FastVectorHighlighter: out of alignment when the first value is
+  empty in multiValued field (Koji Sekiguchi)
+
 New features
 
 * LUCENE-2128: Parallelized fetching document frequencies during weight

Modified: lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java?rev=989035&r1=989034&r2=989035&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java (original)
+++ lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java Wed Aug 25 12:04:05 2010
@@ -155,9 +155,10 @@ public abstract class BaseFragmentsBuild
   protected String getFragmentSource( StringBuilder buffer, int[] index, String[] values,
       int startOffset, int endOffset ){
     while( buffer.length() < endOffset && index[0] < values.length ){
-      if( index[0] > 0 && values[index[0]].length() > 0 )
+      buffer.append( values[index[0]] );
+      if( values[index[0]].length() > 0 && index[0] + 1 < values.length )
         buffer.append( multiValuedSeparator );
-      buffer.append( values[index[0]++] );
+      index[0]++;
     }
     int eo = buffer.length() < endOffset ? buffer.length() : endOffset;
     return buffer.substring( startOffset, eo );
@@ -166,9 +167,10 @@ public abstract class BaseFragmentsBuild
   protected String getFragmentSource( StringBuilder buffer, int[] index, Field[] values,
       int startOffset, int endOffset ){
     while( buffer.length() < endOffset && index[0] < values.length ){
-      if( index[0] > 0 && values[index[0]].isTokenized() && values[index[0]].stringValue().length() > 0 )
+      buffer.append( values[index[0]].stringValue() );
+      if( values[index[0]].isTokenized() && values[index[0]].stringValue().length() > 0 && index[0] + 1 < values.length )
         buffer.append( multiValuedSeparator );
-      buffer.append( values[index[0]++].stringValue() );
+      index[0]++;
     }
     int eo = buffer.length() < endOffset ? buffer.length() : endOffset;
     return buffer.substring( startOffset, eo );

Modified: lucene/dev/trunk/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java?rev=989035&r1=989034&r2=989035&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java (original)
+++ lucene/dev/trunk/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java Wed Aug 25 12:04:05 2010
@@ -60,6 +60,8 @@ public abstract class AbstractTestCase e
   protected QueryParser paB;
   
   protected static final String[] shortMVValues = {
+    "",
+    "",
     "a b c",
     "",   // empty data in multi valued field
     "d e"
@@ -352,6 +354,9 @@ public abstract class AbstractTestCase e
   }
   
   protected void makeIndexShortMV() throws Exception {
+    
+    // ""
+    // ""
 
     //  012345
     // "a b c"