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/01/25 21:05:56 UTC
svn commit: r1438680 - in
/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42:
Lucene42DocValuesConsumer.java Lucene42DocValuesProducer.java
Author: rmuir
Date: Fri Jan 25 20:05:55 2013
New Revision: 1438680
URL: http://svn.apache.org/viewvc?rev=1438680&view=rev
Log:
don't write redundant count
Modified:
lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesConsumer.java
lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesProducer.java
Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesConsumer.java?rev=1438680&r1=1438679&r2=1438680&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesConsumer.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesConsumer.java Fri Jan 25 20:05:55 2013
@@ -58,10 +58,12 @@ class Lucene42DocValuesConsumer extends
static final int BLOCK_SIZE = 4096;
final IndexOutput data, meta;
+ final int maxDoc;
Lucene42DocValuesConsumer(SegmentWriteState state, String dataCodec, String dataExtension, String metaCodec, String metaExtension) throws IOException {
boolean success = false;
try {
+ maxDoc = state.segmentInfo.getDocCount();
String dataName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, dataExtension);
data = state.directory.createOutput(dataName, state.context);
CodecUtil.writeHeader(data, dataCodec, VERSION_CURRENT);
@@ -83,14 +85,12 @@ class Lucene42DocValuesConsumer extends
meta.writeLong(data.getFilePointer());
long minValue = Long.MAX_VALUE;
long maxValue = Long.MIN_VALUE;
- int count = 0;
// TODO: more efficient?
HashSet<Long> uniqueValues = new HashSet<Long>();
for(Number nv : values) {
long v = nv.longValue();
minValue = Math.min(minValue, v);
maxValue = Math.max(maxValue, v);
- count++;
if (uniqueValues != null) {
if (uniqueValues.add(v)) {
if (uniqueValues.size() > 256) {
@@ -114,10 +114,9 @@ class Lucene42DocValuesConsumer extends
}
meta.writeVInt(PackedInts.VERSION_CURRENT);
- meta.writeVInt(count);
data.writeVInt(bitsPerValue);
- final PackedInts.Writer writer = PackedInts.getWriterNoHeader(data, PackedInts.Format.PACKED, count, bitsPerValue, PackedInts.DEFAULT_BUFFER_SIZE);
+ final PackedInts.Writer writer = PackedInts.getWriterNoHeader(data, PackedInts.Format.PACKED, maxDoc, bitsPerValue, PackedInts.DEFAULT_BUFFER_SIZE);
for(Number nv : values) {
writer.add(encode.get(nv));
}
@@ -126,7 +125,6 @@ class Lucene42DocValuesConsumer extends
meta.writeByte((byte)0); // delta-compressed
meta.writeVInt(PackedInts.VERSION_CURRENT);
- meta.writeVInt(count);
data.writeVInt(BLOCK_SIZE);
final BlockPackedWriter writer = new BlockPackedWriter(data, BLOCK_SIZE);
Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesProducer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesProducer.java?rev=1438680&r1=1438679&r2=1438680&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesProducer.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/codecs/lucene42/Lucene42DocValuesProducer.java Fri Jan 25 20:05:55 2013
@@ -106,7 +106,6 @@ class Lucene42DocValuesProducer extends
entry.offset = meta.readLong();
entry.tableized = meta.readByte() != 0;
entry.packedIntsVersion = meta.readVInt();
- entry.count = meta.readVInt();
numerics.put(fieldNumber, entry);
} else if (fieldType == Lucene42DocValuesConsumer.BYTES) {
BinaryEntry entry = new BinaryEntry();
@@ -151,7 +150,7 @@ class Lucene42DocValuesProducer extends
decode[i] = data.readLong();
}
final int bitsPerValue = data.readVInt();
- final PackedInts.Reader reader = PackedInts.getReaderNoHeader(data, PackedInts.Format.PACKED, entry.packedIntsVersion, entry.count, bitsPerValue);
+ final PackedInts.Reader reader = PackedInts.getReaderNoHeader(data, PackedInts.Format.PACKED, entry.packedIntsVersion, maxDoc, bitsPerValue);
return new NumericDocValues() {
@Override
public long get(int docID) {
@@ -160,7 +159,7 @@ class Lucene42DocValuesProducer extends
};
} else {
final int blockSize = data.readVInt();
- final BlockPackedReader reader = new BlockPackedReader(data, entry.packedIntsVersion, blockSize, entry.count, false);
+ final BlockPackedReader reader = new BlockPackedReader(data, entry.packedIntsVersion, blockSize, maxDoc, false);
return new NumericDocValues() {
@Override
public long get(int docID) {
@@ -282,7 +281,6 @@ class Lucene42DocValuesProducer extends
long offset;
boolean tableized;
int packedIntsVersion;
- int count;
}
static class BinaryEntry {