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"