You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by so...@apache.org on 2021/06/09 11:56:59 UTC
[lucene] branch main updated: LUCENE-9992: write empty vector
fields when merging (#172)
This is an automated email from the ASF dual-hosted git repository.
sokolov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/lucene.git
The following commit(s) were added to refs/heads/main by this push:
new 465cb17 LUCENE-9992: write empty vector fields when merging (#172)
465cb17 is described below
commit 465cb17d2b5762f01fbe3069dabd5841eaadac8b
Author: Michael Sokolov <so...@falutin.net>
AuthorDate: Wed Jun 9 07:56:50 2021 -0400
LUCENE-9992: write empty vector fields when merging (#172)
---
.../org/apache/lucene/codecs/VectorWriter.java | 4 +---
.../codecs/lucene90/Lucene90HnswVectorWriter.java | 22 ++++++++++------------
.../lucene/index/BaseVectorFormatTestCase.java | 8 ++++++--
3 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/VectorWriter.java b/lucene/core/src/java/org/apache/lucene/codecs/VectorWriter.java
index c6c5964..90d9acc 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/VectorWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/VectorWriter.java
@@ -106,9 +106,7 @@ public abstract class VectorWriter implements Closeable {
}
// Create a new VectorValues by iterating over the sub vectors, mapping the resulting
// docids using docMaps in the mergeState.
- if (subs.size() > 0) {
- writeField(mergeFieldInfo, new VectorValuesMerger(subs, mergeState));
- }
+ writeField(mergeFieldInfo, new VectorValuesMerger(subs, mergeState));
if (mergeState.infoStream.isEnabled("VV")) {
mergeState.infoStream.message("VV", "merge done " + mergeState.segmentInfo);
}
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90HnswVectorWriter.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90HnswVectorWriter.java
index b2df81e..7cb8f7c 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90HnswVectorWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90HnswVectorWriter.java
@@ -142,18 +142,16 @@ public final class Lucene90HnswVectorWriter extends VectorWriter {
}
}
long vectorIndexLength = vectorIndex.getFilePointer() - vectorIndexOffset;
- if (vectorDataLength > 0) {
- writeMeta(
- fieldInfo,
- vectorDataOffset,
- vectorDataLength,
- vectorIndexOffset,
- vectorIndexLength,
- count,
- docIds);
- if (vectors.similarityFunction() != VectorValues.SimilarityFunction.NONE) {
- writeGraphOffsets(meta, offsets);
- }
+ writeMeta(
+ fieldInfo,
+ vectorDataOffset,
+ vectorDataLength,
+ vectorIndexOffset,
+ vectorIndexLength,
+ count,
+ docIds);
+ if (vectors.similarityFunction() != VectorValues.SimilarityFunction.NONE) {
+ writeGraphOffsets(meta, offsets);
}
}
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BaseVectorFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BaseVectorFormatTestCase.java
index e64c147..e1e4a89 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/BaseVectorFormatTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/BaseVectorFormatTestCase.java
@@ -535,12 +535,16 @@ public abstract class BaseVectorFormatTestCase extends BaseIndexFileFormatTestCa
w.commit();
try (DirectoryReader r = w.getReader()) {
- assertNotNull(getOnlyLeafReader(r).getVectorValues("v"));
+ VectorValues values = getOnlyLeafReader(r).getVectorValues("v");
+ assertNotNull(values);
+ assertEquals(1, values.size());
}
w.deleteDocuments(new Term("id", "0"));
w.forceMerge(1);
try (DirectoryReader r = w.getReader()) {
- assertNull(getOnlyLeafReader(r).getVectorValues("v"));
+ VectorValues values = getOnlyLeafReader(r).getVectorValues("v");
+ assertNotNull(values);
+ assertEquals(0, values.size());
}
}
}