|
@@ -432,3 +432,38 @@ func init21123() {
|
|
|
fmt.Println(searchByMatch)
|
|
|
fmt.Println("end")
|
|
|
}
|
|
|
+
|
|
|
+func SearchByKeyWordQuery(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
+ errorlog := log.New(os.Stdout, "APP", log.LstdFlags)
|
|
|
+ file := "./rdlucklog/eslog.log"
|
|
|
+ logFile, _ := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
|
|
|
+
|
|
|
+ client, err := elastic.NewClient(
|
|
|
+ elastic.SetURL(ES_URL),
|
|
|
+ elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD),
|
|
|
+ elastic.SetTraceLog(log.New(logFile, "ES-TRACE: ", 0)),
|
|
|
+ elastic.SetSniff(false), elastic.SetErrorLog(errorlog))
|
|
|
+
|
|
|
+ var esIndex = "cygx_article"
|
|
|
+
|
|
|
+ keyWordStr := "医疗"
|
|
|
+ queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `) BodyText:(` + keyWordStr + `)`).Analyzer("ik_smart")
|
|
|
+ highlight := elastic.NewHighlight()
|
|
|
+ highlight = highlight.Fields(elastic.NewHighlighterField("Title"), elastic.NewHighlighterField("BodyText"))
|
|
|
+ highlight = highlight.PreTags("<font color='red'>").PostTags("</font>")
|
|
|
+ request := client.Search(esIndex).Highlight(highlight).Query(queryString)
|
|
|
+
|
|
|
+ searchByMatch, err := request.Do(context.Background())
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("request.Do err:",err.Error())
|
|
|
+ return result, err
|
|
|
+ }
|
|
|
+ if searchByMatch.Hits != nil {
|
|
|
+ for _, v := range searchByMatch.Hits.Hits {
|
|
|
+ articleJson, _ := v.Source.MarshalJSON()
|
|
|
+ utils.FileLog.Info("%s", string(articleJson))
|
|
|
+ fmt.Println(string(articleJson))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|