|
@@ -314,28 +314,32 @@ func (k *KnowledgeService) FindAnswer(param *knowledgeclient.FindAnswerReq, addr
|
|
|
// RecommendAnswer 根据问题推荐三个答案
|
|
|
func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq, segment string, recommendQuestionCount int) []*knowledgeclient.Question {
|
|
|
var (
|
|
|
- keyWords = ""
|
|
|
- searchField = `"answer","question"`
|
|
|
- answers []*knowledgeclient.Question
|
|
|
+ //keyWords = ""
|
|
|
+ //searchField = `"answer","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)
|
|
|
+ robotEntId := SE.Decode4Hex(param.RobotEntId)
|
|
|
+ ////根据问题进行分词
|
|
|
+ //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
|
|
|
if param.ReqSource == 1 {
|
|
|
limit = recommendQuestionCount
|
|
|
}
|
|
|
- res := elastic.GetAllByNgram(Index, Type, query, "", "", searchField, 0, limit, 0, false)
|
|
|
+ //res := elastic.GetAllByNgram(Index, Type, query, "", "", searchField, 0, limit, 0, false)
|
|
|
+ query := util.GetAnswerQueryStr(param.Question, robotEntId, limit, init.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{
|