From e2dd99c9059baaddce3f14469ae7bc88b4c97293 Mon Sep 17 00:00:00 2001
From: 18586361686 <1207669650@qq.com>
Date: 星期五, 23 五月 2025 15:04:46 +0800
Subject: [PATCH] fix: 检索测试时,相似度不准确 close #IC9FQM

---
 aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java b/aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java
index 727ffc7..dfa4ea0 100644
--- a/aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java
+++ b/aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java
@@ -74,16 +74,15 @@
         for (Document result : results) {
             Object resultId = result.getId();
             Double similarityScore = result.getScore();
-            // 浣跨敤 BigDecimal 淇濈暀灏忔暟鐐瑰悗鍥涗綅
-            BigDecimal formatScore = new BigDecimal(similarityScore);
-            formatScore = formatScore.setScale(4, RoundingMode.HALF_UP); // 鍥涜垗浜斿叆淇濈暀鍥涗綅灏忔暟
-            similarityScore = formatScore.doubleValue();
+            // 璁$畻鐩镐技搴﹀苟淇濈暀 4 浣嶅皬鏁�
+            BigDecimal similarity = BigDecimal.valueOf(1 - similarityScore)
+                    .setScale(4, RoundingMode.HALF_UP); // 鍥涜垗浜斿叆
             AiDocumentChunk documentChunk = chunkService.getMapper().selectOneWithRelationsByMap(
                     Maps.of("id", resultId));
             if (documentChunk == null){
                 continue;
             }
-            documentChunk.setSimilarityScore(similarityScore);
+            documentChunk.setSimilarityScore(similarity.doubleValue());
             chunks.add(documentChunk);
         }
 

--
Gitblit v1.8.0