Class ArticleVectorService
java.lang.Object
com.bytedesk.kbase.article.vector.ArticleVectorService
@Service
@ConditionalOnBean(org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore.class)
public class ArticleVectorService
extends Object
文章向量检索服务
用于处理文章的向量存储和相似度搜索
- Author:
- jackning
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ArticleRestServiceprivate final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ArticleVectorcreateSimpleArticleVectorFromDocument(org.springframework.ai.document.Document doc) 从文档创建简化版的ArticleVector对象 用于在找不到对应的文章实体时提供基础信息deleteArticle(ArticleEntity article) 从向量存储中删除文章向量文档 修改为不更新实体的方式,只进行向量删除操作,避免实体并发修改冲突voidindexVector(ArticleEntity article) 将文章内容添加到向量存储中 添加版本检查,以更好地处理乐观锁冲突searchArticleVector(String query, String kbUid, String categoryUid, String orgUid, int limit) 在向量存储中进行语义搜索voidupdateAllVectorIndex(ArticleRequest request) 更新所有文章的向量索引voidupdateVectorIndex(ArticleRequest request) 更新文章的向量索引
-
Field Details
-
vectorStore
private final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore vectorStore -
articleRestService
-
-
Constructor Details
-
ArticleVectorService
public ArticleVectorService()
-
-
Method Details
-
indexVector
将文章内容添加到向量存储中 添加版本检查,以更好地处理乐观锁冲突- Parameters:
article- 文章实体
-
updateVectorIndex
更新文章的向量索引- Parameters:
request- 文章请求对象
-
updateAllVectorIndex
更新所有文章的向量索引- Parameters:
request- 文章请求对象,包含知识库ID
-
deleteArticle
从向量存储中删除文章向量文档 修改为不更新实体的方式,只进行向量删除操作,避免实体并发修改冲突- Parameters:
article- 文章实体- Returns:
- 删除成功返回true,否则返回false
-
searchArticleVector
public List<ArticleVectorSearchResult> searchArticleVector(String query, String kbUid, String categoryUid, String orgUid, int limit) 在向量存储中进行语义搜索- Parameters:
query- 搜索关键词kbUid- 知识库UID(可选)categoryUid- 分类UID(可选)orgUid- 组织UID(可选)limit- 返回结果数量限制- Returns:
- 相似度搜索结果列表
-
createSimpleArticleVectorFromDocument
private ArticleVector createSimpleArticleVectorFromDocument(org.springframework.ai.document.Document doc) 从文档创建简化版的ArticleVector对象 用于在找不到对应的文章实体时提供基础信息- Parameters:
doc- 文档对象- Returns:
- 简化的ArticleVector对象
-