优化字段

pull/1/head
liu 11 months ago
parent 98ec64f781
commit 83c7c8551f

@ -28,8 +28,8 @@ public class VectorSimilarityConfiguration {
.withIndexName(redisVectorProperties.getIndexName())
// 定义搜索过滤器使用的元数据字段(!!!!!!!!千万重要,数据类型一定要用字符串,否则会导致查询不到!!!!!!!!)
.withMetadataFields(
// 问题的ID
RedisVectorStore.MetadataField.tag("matchQuestionId"),
// 问题的ID,如果type=1,则在library表,如果type=2,则在similar表
RedisVectorStore.MetadataField.tag("questionId"),
//关联字典ID
RedisVectorStore.MetadataField.tag("dictId"),
// 标准问ID

@ -13,7 +13,7 @@ public class QaSimilarityQuestionAnswer {
/**
* ID
*/
private String matchQuestionId;
private String questionId;
/**
* ID

@ -43,7 +43,7 @@ public class SimilarityUtil {
return documents.stream().map(document -> {
QaSimilarityQuestionAnswer qaSimilarityQuestionAnswer = new QaSimilarityQuestionAnswer();
qaSimilarityQuestionAnswer.setMatchQuestion(document.getContent());
qaSimilarityQuestionAnswer.setMatchQuestionId(String.valueOf(document.getMetadata().get("matchQuestionId")));
qaSimilarityQuestionAnswer.setQuestionId(String.valueOf(document.getMetadata().get("questionId")));
qaSimilarityQuestionAnswer.setDictId(String.valueOf(document.getMetadata().get("dictId")));
qaSimilarityQuestionAnswer.setLibraryQuestionId(String.valueOf(document.getMetadata().get("libraryQuestionId")));
// 1- 可以使数据进行排序,相似度越高,数值越大(redis相似度给的数据是越小相似度越高)

@ -38,14 +38,14 @@ public class QaKnowledgeManageServiceImpl implements QaKnowledgeManageService {
redisVectorStore.add(List.of(new Document(description,
Map.of("type", "1",
"libraryQuestionId", askTemplateQuestionLibrary.getId(),
"matchQuestionId", askTemplateQuestionLibrary.getId(),
"questionId", askTemplateQuestionLibrary.getId(),
"dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
List<AskTemplateQuestionSimilarity> similarityList = askTemplateQuestionSimilarityService.lambdaQuery().eq(AskTemplateQuestionSimilarity::getLibraryId, askTemplateQuestionLibrary.getId()).list();
for (AskTemplateQuestionSimilarity askTemplateQuestionSimilarity : similarityList) {
redisVectorStore.add(List.of(new Document(askTemplateQuestionSimilarity.getSimilarityQuestion(),
Map.of("type", "2",
"libraryQuestionId", askTemplateQuestionSimilarity.getLibraryId(),
"matchQuestionId", askTemplateQuestionSimilarity.getId(),
"questionId", askTemplateQuestionSimilarity.getId(),
"dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
}
}

@ -94,14 +94,14 @@ public class TestController {
redisVectorStore.add(List.of(new Document(description,
Map.of("type", "1",
"libraryQuestionId", askTemplateQuestionLibrary.getId(),
"matchQuestionId", askTemplateQuestionLibrary.getId(),
"questionId", askTemplateQuestionLibrary.getId(),
"dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
List<AskTemplateQuestionSimilarity> similarityList = askTemplateQuestionSimilarityService.lambdaQuery().eq(AskTemplateQuestionSimilarity::getLibraryId, askTemplateQuestionLibrary.getId()).list();
for (AskTemplateQuestionSimilarity askTemplateQuestionSimilarity : similarityList) {
redisVectorStore.add(List.of(new Document(askTemplateQuestionSimilarity.getSimilarityQuestion(),
Map.of("type", "2",
"libraryQuestionId", askTemplateQuestionSimilarity.getLibraryId(),
"matchQuestionId", askTemplateQuestionSimilarity.getId(),
"questionId", askTemplateQuestionSimilarity.getId(),
"dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
}
}

@ -165,7 +165,7 @@ public class AskServiceImpl implements AskService {
.similarityInfo(JSONUtil.toJsonStr(similarityAnswerList))
.matchScore(similarityResult.getMatchScore())
.matchItem(Optional.ofNullable(commonDicService.getById(Long.parseLong(similarityResult.getDictId()))).orElse(new CommonDic()).getNameZhPath())
.matchSimilarityId(similarityResult.getMatchQuestionId())
.matchSimilarityId(similarityResult.getQuestionId())
.matchLibraryId(similarityResult.getLibraryQuestionId())
.matchQuestion(similarityResult.getMatchQuestion())
.successType(1)

Loading…
Cancel
Save