This is an automated email from the ASF dual-hosted git repository.
cpoerschke pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new c96463a5cef SOLR-16952: add DenseVectorField to
DocsStreamer.KNOWN_TYPES (#2103)
c96463a5cef is described below
commit c96463a5cef8f38184a7fc8ccd9fed81a6fbff54
Author: Christine Poerschke <[email protected]>
AuthorDate: Mon Dec 4 14:53:18 2023 +0000
SOLR-16952: add DenseVectorField to DocsStreamer.KNOWN_TYPES (#2103)
(cherry picked from commit 508f63b28c49349b4735248265344e76ac81c1dc)
---
solr/CHANGES.txt | 2 ++
solr/core/src/java/org/apache/solr/response/DocsStreamer.java | 4 ++++
solr/core/src/test/org/apache/solr/response/DocsStreamerTest.java | 5 +----
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 95eb594c31b..1472109eba4 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -68,6 +68,8 @@ Bug Fixes
* SOLR-17093: Collection restore API command now returns "requestid" when
executed asynchronously like other APIs
(Tomás Fernández Löbbe)
+* SOLR-16952: In distributed i.e. multi-shard cloud mode returned dense vector
'fl' fields are now a list of numbers instead of strings. (Qais Qadri,
Christine Poerschke)
+
Dependency Upgrades
---------------------
* SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0 (Kevin
Risden)
diff --git a/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
b/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
index 2f1e003628c..8fdcefa3d3f 100644
--- a/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
+++ b/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
@@ -31,6 +31,7 @@ import org.apache.solr.response.transform.DocTransformer;
import org.apache.solr.schema.BinaryField;
import org.apache.solr.schema.BoolField;
import org.apache.solr.schema.DatePointField;
+import org.apache.solr.schema.DenseVectorField;
import org.apache.solr.schema.DoublePointField;
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.FloatPointField;
@@ -221,6 +222,9 @@ public class DocsStreamer implements Iterator<SolrDocument>
{
KNOWN_TYPES.add(LongPointField.class);
KNOWN_TYPES.add(DoublePointField.class);
KNOWN_TYPES.add(FloatPointField.class);
+ // DenseVectorField extends FloatPointField but here we list
DenseVectorField
+ // explicitly due to KNOWN_TYPES.contains use of the KNOWN_TYPES set
+ KNOWN_TYPES.add(DenseVectorField.class);
KNOWN_TYPES.add(DatePointField.class);
// We do not add UUIDField because UUID object is not a supported type in
JavaBinCodec
// and if we write UUIDField.toObject, we wouldn't know how to handle it
in the client side
diff --git a/solr/core/src/test/org/apache/solr/response/DocsStreamerTest.java
b/solr/core/src/test/org/apache/solr/response/DocsStreamerTest.java
index a4dbbede243..fa7c9695b16 100644
--- a/solr/core/src/test/org/apache/solr/response/DocsStreamerTest.java
+++ b/solr/core/src/test/org/apache/solr/response/DocsStreamerTest.java
@@ -33,14 +33,11 @@ public class DocsStreamerTest extends SolrTestCaseJ4 {
public void testDenseVectorField() throws Exception {
List<Float> values = Arrays.asList(1.1f, 2.2f, 3.3f, 4.4f);
- List<String> dsValues =
- Arrays.asList("1.1", "2.2", "3.3", "4.4"); // should be Float too, see
SOLR-16952
-
SchemaField sf = h.getCore().getLatestSchema().getField("vector");
List<IndexableField> fields = sf.createFields(values);
for (int idx = 1; idx < fields.size(); ++idx) {
Object value = DocsStreamer.getValue(sf, fields.get(idx));
- assertEquals(dsValues.get(idx - 1), value);
+ assertEquals(values.get(idx - 1), value);
}
}
}