|
@@ -147,7 +147,7 @@ func SaveData() {
|
|
|
fmt.Println("end")
|
|
|
}
|
|
|
|
|
|
-func SearchByKeyWordBack(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
+func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
pageSize := 20
|
|
|
keyWordArr, err := GetIndustryMapNameSlice(keyWord)
|
|
|
if err != nil {
|
|
@@ -168,24 +168,43 @@ func SearchByKeyWordBack(keyWord string) (result []*models.SearchItem, err error
|
|
|
var esIndex = "cygx_article"
|
|
|
|
|
|
searchMap := make(map[int]int)
|
|
|
- boolquery := elastic.NewBoolQuery()
|
|
|
- matchQueryList := make([]elastic.Query, len(keyWordArr))
|
|
|
- keyWordLen := len(keyWordArr)
|
|
|
- n := keyWordLen
|
|
|
- for _, v := range keyWordArr {
|
|
|
- keyWord = v
|
|
|
- boost := float64(n)
|
|
|
- matchQueryList = append(matchQueryList, elastic.NewMatchQuery("Title", keyWord).Boost(boost+0.2))
|
|
|
- matchQueryList = append(matchQueryList, elastic.NewMatchQuery("BodyText", keyWord).Boost(boost+0.1))
|
|
|
- n--
|
|
|
- }
|
|
|
- //boolquery.Must(elastic.NewMatchQuery("Title", keyWord), elastic.NewMatchQuery("BodyText", keyWord))
|
|
|
- boolquery.Must(matchQueryList...)
|
|
|
+ //boolquery := elastic.NewBoolQuery()
|
|
|
+ //keyWordLen := len(keyWordArr)
|
|
|
+ //n := keyWordLen
|
|
|
+ //for _, v := range keyWordArr {
|
|
|
+ // keyWord = v
|
|
|
+ // boost := float64(n)
|
|
|
+ // fmt.Println("keyWord:", keyWord)
|
|
|
+ // fmt.Println("boost:", boost)
|
|
|
+ // //matchQueryList = append(matchQueryList, elastic.NewMatchQuery("Title", keyWord).Boost(boost+0.2))
|
|
|
+ // //matchQueryList = append(matchQueryList, elastic.NewMatchQuery("BodyText", keyWord).Boost(boost+0.1))
|
|
|
+ // q1 := elastic.NewMatchQuery("Title", keyWord)
|
|
|
+ // q1 = q1.Boost(boost + 0.2)
|
|
|
+ // q2 := elastic.NewMatchQuery("BodyText", keyWord)
|
|
|
+ // q2 = q2.Boost(boost + 0.1)
|
|
|
+ // boolquery.Should(q1, q2)
|
|
|
+ // n--
|
|
|
+ //}
|
|
|
+ keyWordStr := strings.Join(keyWordArr, ",")
|
|
|
+ queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `) BodyText:(`+keyWordStr+`)`)
|
|
|
|
|
|
+ boolqueryJson, err := json.Marshal(queryString)
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ fmt.Println("queryString ", string(boolqueryJson))
|
|
|
+
|
|
|
+ //boolquery.Must(elastic.NewMatchQuery("Title", keyWord), elastic.NewMatchQuery("BodyText", keyWord))
|
|
|
highlight := elastic.NewHighlight()
|
|
|
highlight = highlight.Fields(elastic.NewHighlighterField("Title"), elastic.NewHighlighterField("BodyText"))
|
|
|
highlight = highlight.PreTags("<font color='red'>").PostTags("</font>")
|
|
|
- searchByMatch, err := client.Search(esIndex).Highlight(highlight).Size(pageSize).Query(boolquery).Do(context.Background())
|
|
|
+ request := client.Search(esIndex).Highlight(highlight).Size(pageSize).Query(queryString)
|
|
|
+
|
|
|
+ requestJson, err := json.Marshal(request)
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ fmt.Println("requestJson ", string(requestJson))
|
|
|
+
|
|
|
+ searchByMatch, err := request.Do(context.Background())
|
|
|
+
|
|
|
+ //searchByMatch, err := client.Search(esIndex).Highlight(highlight).Size(pageSize).Do(context.Background())
|
|
|
if err != nil {
|
|
|
return result, err
|
|
|
}
|
|
@@ -220,7 +239,7 @@ func SearchByKeyWordBack(keyWord string) (result []*models.SearchItem, err error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
+func SearchByKeyWordBack(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
pageSize := 20
|
|
|
keyWordArr, err := GetIndustryMapNameSlice(keyWord)
|
|
|
if err != nil {
|