Răsfoiți Sursa

Es搜索优化-(标题匹配靠前)

xingzai 3 ani în urmă
părinte
comite
04ff6f2d5a
1 a modificat fișierele cu 17 adăugiri și 8 ștergeri
  1. 17 8
      services/elastic.go

+ 17 - 8
services/elastic.go

@@ -656,6 +656,9 @@ func EsMultiMatchFunctionScoreQuerySort(indexName, keyWord string, startSize, pa
 		keyWordArr = append(keyWordArr, keyWord)
 		keyWordLen = len(keyWordArr)
 	}
+	for _, v := range keyWordArr {
+		fmt.Println(v)
+	}
 
 	// @Param   OrderColumn   query   int  true       "排序字段 ,Comprehensive综合 ,Matching匹配度 ,PublishDate 发布时间 "
 	utils.FileLog.Info("SearchKeyWord:%s, userId:%s", keyWordArr, strconv.Itoa(userId))
@@ -665,17 +668,23 @@ func EsMultiMatchFunctionScoreQuerySort(indexName, keyWord string, startSize, pa
 			matchArr := make([]elastic.Query, 0)
 			boolquery := elastic.NewBoolQuery()
 			bodyFunctionQuery := elastic.NewFunctionScoreQuery()
-			//if orderColumn == "PublishDate" {
-			//	multiMatch := elastic.NewMultiMatchQuery(v, "Title", "BodyText")
-			//	bodyFunctionQuery.Query(multiMatch)
-			//} else {
-			//	multiMatch := elastic.NewMultiMatchQuery(v, "Title", "BodyText").Analyzer("ik_smart")
-			//	bodyFunctionQuery.Query(multiMatch)
-			//}
-			multiMatch := elastic.NewMultiMatchQuery(v, "Title", "BodyText").Analyzer("ik_smart")
+			bodyFunctionQuery2 := elastic.NewFunctionScoreQuery()
+
+			//multiMatch := elastic.NewMultiMatchQuery(v, "Title", "BodyText").Analyzer("ik_smart")
+			multiMatch := elastic.NewMultiMatchQuery(v, "Title").Analyzer("ik_smart").Boost(10)
 			bodyFunctionQuery.Query(multiMatch)
 			matchArr = append(matchArr, bodyFunctionQuery)
+
+			multiMatch = elastic.NewMultiMatchQuery(v, "BodyText").Analyzer("ik_smart")
+			bodyFunctionQuery2.Query(multiMatch)
+			matchArr = append(matchArr, bodyFunctionQuery2)
 			boolquery.Should(matchArr...)
+
+			//multiMatch = elastic.NewMultiMatchQuery(v, "BodyText").Analyzer("ik_smart")
+			//bodyFunctionQuery.Query(multiMatch)
+			//matchArr = append(matchArr, bodyFunctionQuery)
+			//boolquery.Should(matchArr...)
+
 			highlight := elastic.NewHighlight()
 			highlight = highlight.PreTags("<font color='red'>").PostTags("</font>")
 			highlight = highlight.Fields(elastic.NewHighlighterField("Title"), elastic.NewHighlighterField("BodyText"))