|
@@ -261,7 +261,7 @@ func (k *KnowledgeService) FindAnswer(param *knowledgeclient.FindAnswerReq, addr
|
|
robotEntId := SE.Decode4Hex(param.RobotEntId)
|
|
robotEntId := SE.Decode4Hex(param.RobotEntId)
|
|
//组装es query
|
|
//组装es query
|
|
//query := util.DSL4SmartResponse(param.Question, robotEntId, int(param.Type), addr, index, segment)
|
|
//query := util.DSL4SmartResponse(param.Question, robotEntId, int(param.Type), addr, index, segment)
|
|
- query := util.GetAnswerQueryStr(param.Question, robotEntId, 1, ki.C.MinScore)
|
|
|
|
|
|
+ query := util.GetAnswerQueryStr(param.Question, robotEntId, 1, 0.01)
|
|
logx.Info("query:", query)
|
|
logx.Info("query:", query)
|
|
if query != "" {
|
|
if query != "" {
|
|
res := ESV7.Get(ESV7Index, ESV7Type, query)
|
|
res := ESV7.Get(ESV7Index, ESV7Type, query)
|
|
@@ -277,39 +277,27 @@ func (k *KnowledgeService) FindAnswer(param *knowledgeclient.FindAnswerReq, addr
|
|
// RecommendAnswer 根据问题推荐三个答案
|
|
// RecommendAnswer 根据问题推荐三个答案
|
|
func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq, segment string, recommendQuestionCount int) []*knowledgeclient.Question {
|
|
func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq, segment string, recommendQuestionCount int) []*knowledgeclient.Question {
|
|
var (
|
|
var (
|
|
- //keyWords = ""
|
|
|
|
- //searchField = `"answer","question"`
|
|
|
|
answers []*knowledgeclient.Question
|
|
answers []*knowledgeclient.Question
|
|
)
|
|
)
|
|
- ////根据问题进行分词
|
|
|
|
- //keywordsArr := util.HanlpGetNormalWords(param.Question, segment)
|
|
|
|
- //logx.Info("keywordsArr", keywordsArr)
|
|
|
|
- //if len(keywordsArr) != 0 {
|
|
|
|
- // for _, val := range keywordsArr {
|
|
|
|
- // keyWords += val + " "
|
|
|
|
- // }
|
|
|
|
- //}
|
|
|
|
- //if keyWords == "" {
|
|
|
|
- // keyWords = param.Question
|
|
|
|
- //}
|
|
|
|
- ////logx.Info("entId:", SE.Decode4Hex(param.RobotEntId))
|
|
|
|
- //var query = util.DSL4SearchByKwsOrid(keyWords, param.RobotEntId, 0)
|
|
|
|
limit := 3
|
|
limit := 3
|
|
if param.ReqSource == 1 {
|
|
if param.ReqSource == 1 {
|
|
limit = recommendQuestionCount
|
|
limit = recommendQuestionCount
|
|
}
|
|
}
|
|
- //res := elastic.GetAllByNgram(Index, Type, query, "", "", searchField, 0, limit, 0, false)
|
|
|
|
- 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 {
|
|
|
|
- for _, val := range *res {
|
|
|
|
- answers = append(answers, &knowledgeclient.Question{
|
|
|
|
- Question: cm.ObjToString(val["question"]),
|
|
|
|
- Answer: cm.ObjToString(val["answer"]),
|
|
|
|
- })
|
|
|
|
|
|
+ for i := 0; i < len(ki.C.MinScore); i++ {
|
|
|
|
+ query := util.GetAnswerQueryStr(param.Question, param.RobotEntId, limit, ki.C.MinScore[i])
|
|
|
|
+ logx.Info("query:", query)
|
|
|
|
+ res := ESV7.Get(ESV7Index, ESV7Type, query)
|
|
|
|
+ logx.Info("res:", res)
|
|
|
|
+ if res != nil && len(*res) > 0 {
|
|
|
|
+ for _, val := range *res {
|
|
|
|
+ answers = append(answers, &knowledgeclient.Question{
|
|
|
|
+ Question: cm.ObjToString(val["question"]),
|
|
|
|
+ Answer: cm.ObjToString(val["answer"]),
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ log.Println("推荐答案:", answers)
|
|
|
|
+ return answers
|
|
}
|
|
}
|
|
- log.Println("推荐答案:", answers)
|
|
|
|
}
|
|
}
|
|
return answers
|
|
return answers
|
|
}
|
|
}
|