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 ArticleRestService
private final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ArticleVector
createSimpleArticleVectorFromDocument
(org.springframework.ai.document.Document doc) 从文档创建简化版的ArticleVector对象 用于在找不到对应的文章实体时提供基础信息deleteArticle
(ArticleEntity article) 从向量存储中删除文章向量文档 修改为不更新实体的方式,只进行向量删除操作,避免实体并发修改冲突void
indexVector
(ArticleEntity article) 将文章内容添加到向量存储中 添加版本检查,以更好地处理乐观锁冲突searchArticleVector
(String query, String kbUid, String categoryUid, String orgUid, int limit) 在向量存储中进行语义搜索void
updateAllVectorIndex
(ArticleRequest request) 更新所有文章的向量索引void
updateVectorIndex
(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对象
-