You've already forked DataMate
feat(rag): 添加相对路径搜索功能并优化文件显示
- 在RagFileRepositoryImpl中新增relativePath字段和路径模式构建方法 - 实现buildRelativePathPattern方法用于构建相对路径搜索模式 - 修改page方法添加相对路径模糊查询支持 - 在RagFileReq DTO中添加relativePath参数字段 - 优化KnowledgeBaseDetail页面中的文件名显示逻辑 - 添加normalizePath函数处理文件路径规范化显示
This commit is contained in:
@@ -20,6 +20,8 @@ import java.util.List;
|
||||
*/
|
||||
@Repository
|
||||
public class RagFileRepositoryImpl extends CrudRepository<RagFileMapper, RagFile> implements RagFileRepository {
|
||||
private static final String RELATIVE_PATH_KEY = "\"relativePath\":\"";
|
||||
private static final String PATH_SEPARATOR = "/";
|
||||
@Override
|
||||
public void removeByKnowledgeBaseId(String knowledgeBaseId) {
|
||||
lambdaUpdate().eq(RagFile::getKnowledgeBaseId, knowledgeBaseId).remove();
|
||||
@@ -42,9 +44,25 @@ public class RagFileRepositoryImpl extends CrudRepository<RagFileMapper, RagFile
|
||||
|
||||
@Override
|
||||
public IPage<RagFile> page(IPage<RagFile> page, RagFileReq request) {
|
||||
String relativePathPattern = buildRelativePathPattern(request.getRelativePath());
|
||||
return lambdaQuery()
|
||||
.eq(RagFile::getKnowledgeBaseId, request.getKnowledgeBaseId())
|
||||
.like(StringUtils.hasText(request.getFileName()), RagFile::getFileName, request.getFileName())
|
||||
.like(StringUtils.hasText(relativePathPattern), RagFile::getMetadata, relativePathPattern)
|
||||
.page(page);
|
||||
}
|
||||
|
||||
private String buildRelativePathPattern(String relativePath) {
|
||||
if (!StringUtils.hasText(relativePath)) {
|
||||
return "";
|
||||
}
|
||||
String normalized = relativePath.replace("\\", PATH_SEPARATOR).trim();
|
||||
while (normalized.startsWith(PATH_SEPARATOR)) {
|
||||
normalized = normalized.substring(1);
|
||||
}
|
||||
if (!StringUtils.hasText(normalized)) {
|
||||
return "";
|
||||
}
|
||||
return RELATIVE_PATH_KEY + normalized;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,5 +14,6 @@ import lombok.Setter;
|
||||
@Getter
|
||||
public class RagFileReq extends PagingQuery {
|
||||
private String fileName;
|
||||
private String relativePath;
|
||||
private String knowledgeBaseId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user