From a316368aa3f183e2edcb5ba8b0ae66b4df884cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=91=E5=8B=87?= <1218639030@qq.com> Date: Mon, 29 Sep 2025 21:29:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8A=A8=E6=80=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E8=BD=AC=E6=8D=A2=E6=97=B6=E7=9A=84=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88=E9=A3=8E=E9=99=A9=EF=BC=8C=E5=88=A4=E6=96=ADoutputMet?= =?UTF-8?q?aFields=E9=9D=9E=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../milvus/plus/converter/SearchRespConverter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/SearchRespConverter.java b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/SearchRespConverter.java index 7cc2874..f66dc60 100644 --- a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/SearchRespConverter.java +++ b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/SearchRespConverter.java @@ -3,6 +3,7 @@ package org.dromara.milvus.plus.converter; import io.milvus.v2.service.vector.response.GetResp; import io.milvus.v2.service.vector.response.QueryResp; import io.milvus.v2.service.vector.response.SearchResp; +import org.apache.commons.collections4.CollectionUtils; import org.dromara.milvus.plus.cache.ConversionCache; import org.dromara.milvus.plus.cache.MilvusCache; import org.dromara.milvus.plus.cache.PropertyCache; @@ -42,7 +43,8 @@ public class SearchRespConverter { for (Map.Entry entry : searchResult.getEntity().entrySet()) { String key = propertyCache.findKeyByValue(entry.getKey()); if (conversionCache.getMilvusEntity().getEnableDynamicField() - && "$meta".equals(entry.getKey())) { + && "$meta".equals(entry.getKey()) + && CollectionUtils.isNotEmpty(outputMetaFields)) { if (entry.getValue() == null) { continue; } @@ -110,7 +112,7 @@ public class SearchRespConverter { * @param entityType 需要转换成的实体类型,指定了转换的目标。 * @return MilvusResp对象,包含转换后的实体列表。每个实体都包装在一个MilvusResult对象中,同时设置成功状态为true。 */ - private static MilvusResp>> convertQuery(List getResults, Class entityType, List outputFields){ + private static MilvusResp>> convertQuery(List getResults, Class entityType, List outputMetaFields){ // 初始化转换缓存和属性缓存,用于帮助将查询结果映射到Java实体 ConversionCache conversionCache = MilvusCache.milvusCache.get(entityType.getName()); PropertyCache propertyCache = conversionCache.getPropertyCache(); @@ -125,7 +127,8 @@ public class SearchRespConverter { String key = propertyCache.findKeyByValue(entry.getKey()); if (conversionCache.getMilvusEntity().getEnableDynamicField() && propertyCache.metaFunctionSet.contains(entry.getKey()) - && outputFields.contains(entry.getKey())) { + && CollectionUtils.isNotEmpty(outputMetaFields) + && outputMetaFields.contains(entry.getKey())) { entityMap2.put(String.valueOf(entry.getKey()), entry.getValue()); } else if(key!=null){ Object value = entry.getValue();