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);
     }
   }
 }

Reply via email to