feat: 下沉知识库检索编排能力

- 新增 rag retrieval 核心协议、RRF 融合与相关度归一化

- 支持关键词检索按 knowledgeId 过滤并补充 ES/Lucene 单测

- 扩展 KnowledgeNode 检索模式与 Milvus 检索参数透传
This commit is contained in:
2026-04-05 20:22:59 +08:00
parent 941995d1b8
commit f57544daa2
28 changed files with 1309 additions and 34 deletions

View File

@@ -28,8 +28,12 @@ public interface DocumentSearcher {
boolean updateDocument(Document document);
default List<Document> searchDocuments(String keyword) {
return searchDocuments(keyword, 10);
return searchDocuments(KeywordSearchRequest.of(keyword, 10));
}
List<Document> searchDocuments(String keyword, int count);
default List<Document> searchDocuments(String keyword, int count) {
return searchDocuments(KeywordSearchRequest.of(keyword, count));
}
List<Document> searchDocuments(KeywordSearchRequest request);
}

View File

@@ -0,0 +1,9 @@
package com.easyagents.search.engine.service;
public final class KeywordSearchMetadataKeys {
private KeywordSearchMetadataKeys() {
}
public static final String KNOWLEDGE_ID = "knowledgeId";
}

View File

@@ -0,0 +1,39 @@
package com.easyagents.search.engine.service;
public class KeywordSearchRequest {
private String keyword;
private int count = 10;
private String knowledgeId;
public static KeywordSearchRequest of(String keyword, int count) {
KeywordSearchRequest request = new KeywordSearchRequest();
request.setKeyword(keyword);
request.setCount(count);
return request;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count <= 0 ? 10 : count;
}
public String getKnowledgeId() {
return knowledgeId;
}
public void setKnowledgeId(String knowledgeId) {
this.knowledgeId = knowledgeId;
}
}