You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/01/24 18:42:56 UTC
svn commit: r1062897 -
/lucene/dev/branches/bulkpostings/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
Author: simonw
Date: Mon Jan 24 17:42:55 2011
New Revision: 1062897
URL: http://svn.apache.org/viewvc?rev=1062897&view=rev
Log:
LUCENE-2723: fixed PositionDeltasReader which returned absolute values instead of deltas
Modified:
lucene/dev/branches/bulkpostings/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
Modified: lucene/dev/branches/bulkpostings/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=1062897&r1=1062896&r2=1062897&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Mon Jan 24 17:42:55 2011
@@ -1153,9 +1153,11 @@ public class MemoryIndex implements Seri
private ArrayIntList positions;
private int posUpto;
private int limit;
+ private int lastPos;
public void reset(ArrayIntList positions) {
posUpto = 0;
+ lastPos = 0;
this.positions = positions;
fill();
}
@@ -1183,8 +1185,11 @@ public class MemoryIndex implements Seri
@Override
public int fill() {
final int chunk = Math.min(buffer.length, positions.size() - posUpto);
+ int absolutePos = 0; // positions contains absolute values but Bulk API expects deltas
for(int i=0;i<chunk;i++) {
- buffer[i] = positions.get(posUpto++);
+ absolutePos = positions.get(posUpto++);
+ buffer[i] = absolutePos - lastPos;
+ lastPos = absolutePos;
}
return limit = chunk;
}