瀏覽代碼

feat:A24176es查询调整

fuwencai 8 月之前
父節點
當前提交
d490f5a34d
共有 2 個文件被更改,包括 10 次插入7 次删除
  1. 2 3
      rpc/knowledge/internal/service/knowledgeService.go
  2. 8 4
      rpc/knowledge/util/elasticsearch_dsl.go

+ 2 - 3
rpc/knowledge/internal/service/knowledgeService.go

@@ -85,7 +85,7 @@ func (k *KnowledgeService) KnowledgeAdd(param *knowledgeclient.AddRequest, segme
 			}
 			questionVector, err := util.EncodeVector(param.Question)
 			if err != nil {
-				logx.Error("获取 向量失败 ",err)
+				logx.Error("获取 向量失败 ", err)
 				return false, "获取 向量失败 :" + err.Error()
 			}
 			// 存入向量库
@@ -322,7 +322,6 @@ func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq,
 		//searchField = `"answer","question"`
 		answers []*knowledgeclient.Question
 	)
-	robotEntId := SE.Decode4Hex(param.RobotEntId)
 	////根据问题进行分词
 	//keywordsArr := util.HanlpGetNormalWords(param.Question, segment)
 	//logx.Info("keywordsArr", keywordsArr)
@@ -341,7 +340,7 @@ func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq,
 		limit = recommendQuestionCount
 	}
 	//res := elastic.GetAllByNgram(Index, Type, query, "", "", searchField, 0, limit, 0, false)
-	query := util.GetAnswerQueryStr(param.Question, robotEntId, limit, ki.C.MinScore)
+	query := util.GetAnswerQueryStr(param.Question, param.RobotEntId, limit, ki.C.MinScore)
 	logx.Info("query:", query)
 	res := ESV7.Get(ESV7Index, ESV7Type, query)
 	if res != nil && len(*res) > 0 {

+ 8 - 4
rpc/knowledge/util/elasticsearch_dsl.go

@@ -1,7 +1,9 @@
 package util
 
 import (
+	"encoding/json"
 	"fmt"
+	"github.com/zeromicro/go-zero/core/logx"
 	"strings"
 )
 
@@ -91,11 +93,13 @@ func GetQueryOT(tags, question, keywords, repositoryId string) (qstr string) {
 	return qstr
 }
 
-var queryStr = `{"_source": ["question","intention","answer"],"size": %d, "min_score":%v, 
-
- "query": {"bool": {"must": [{"term":{"entId":%v}"},{"script_score": {"query": {"match_all": {}},"script": {"source": "cosineSimilarity(params.queryVector,'questionVector')+1", "params": {"queryVector": %v}}}}]}}}`
+var queryStr = `{"_source": ["question","intention","answer"],"size": %d, "min_score":%v,"query": {"bool": {"must": [{"term":{"entId":%v}"},{"script_score": {"query": {"match_all": {}},"script": {"source": "cosineSimilarity(params.queryVector,'questionVector')+1", "params": {"queryVector": %v}}}}]}}}`
 
 func GetAnswerQueryStr(question string, entId string, size int, minScore float64) string {
 	qv, _ := EncodeVector(question)
-	return fmt.Sprintf(queryStr, size, minScore, entId, qv)
+	bs, err := json.Marshal(qv)
+	if err != nil {
+		logx.Info("向量序列化失败:", err)
+	}
+	return fmt.Sprintf(queryStr, size, minScore, entId, string(bs))
 }