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 2011/11/12 18:08:48 UTC
svn commit: r1201284 - in
/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs:
DefaultTermVectorsWriter.java TermVectorsWriter.java
Author: rmuir
Date: Sat Nov 12 17:08:47 2011
New Revision: 1201284
URL: http://svn.apache.org/viewvc?rev=1201284&view=rev
Log:
LUCENE-2621: fix tv offset bugs
Modified:
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultTermVectorsWriter.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultTermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultTermVectorsWriter.java?rev=1201284&r1=1201283&r2=1201284&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultTermVectorsWriter.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultTermVectorsWriter.java Sat Nov 12 17:08:47 2011
@@ -168,7 +168,7 @@ public final class DefaultTermVectorsWri
for (int i = 0; i < offsetIndex; i++) {
tvf.writeVInt(offsetStartBuffer[i] - lastOffset);
tvf.writeVInt(offsetEndBuffer[i] - offsetStartBuffer[i]);
- lastOffset = offsetStartBuffer[i];
+ lastOffset = offsetEndBuffer[i];
}
}
} else if (positions) {
@@ -179,7 +179,7 @@ public final class DefaultTermVectorsWri
// write offset deltas
tvf.writeVInt(startOffset - lastOffset);
tvf.writeVInt(endOffset - startOffset);
- lastOffset = startOffset;
+ lastOffset = endOffset;
}
}
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java?rev=1201284&r1=1201283&r2=1201284&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java Sat Nov 12 17:08:47 2011
@@ -109,15 +109,27 @@ public abstract class TermVectorsWriter
// TODO: we should probably nuke this and make a more efficient 4.x format
// PreFlex-RW could then be slow and buffer (its only used in tests...)
public void addProx(int numProx, DataInput positions, DataInput offsets) throws IOException {
- int lastPosition = 0;
+ int position = 0;
int lastOffset = 0;
for (int i = 0; i < numProx; i++) {
- final int position = positions == null ? -1 : lastPosition + positions.readVInt();
- final int offset = offsets == null ? -1 : lastOffset + offsets.readVInt();
- addPosition(position, offset, offsets == null ? -1 : offset + offsets.readVInt());
- lastPosition = position;
- lastOffset = offset;
+ final int startOffset;
+ final int endOffset;
+
+ if (positions == null) {
+ position = -1;
+ } else {
+ position += positions.readVInt();
+ }
+
+ if (offsets == null) {
+ startOffset = endOffset = -1;
+ } else {
+ startOffset = lastOffset + offsets.readVInt();
+ endOffset = startOffset + offsets.readVInt();
+ lastOffset = endOffset;
+ }
+ addPosition(position, startOffset, endOffset);
}
}
@@ -153,8 +165,6 @@ public abstract class TermVectorsWriter
}
/** Safe (but, slowish) default method to write every vector field in the document */
- // nocommit: there are bugs in this thing (or the Fields api).
- // disable DefaultTermVectorsWriter.merge and run TestStressIndexing2
protected final void addAllDocVectors(Fields vectors, FieldInfos fieldInfos) throws IOException {
if (vectors == null) {
startDocument(0);