|
@@ -4,14 +4,16 @@ import (
|
|
|
"context"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
+ "github.com/PuerkitoBio/goquery"
|
|
|
+ "github.com/olivere/elastic/v7"
|
|
|
+ "github.com/olivere/elastic/v7/config"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"html"
|
|
|
+ "log"
|
|
|
+ "os"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
- "github.com/PuerkitoBio/goquery"
|
|
|
- "github.com/olivere/elastic/v7"
|
|
|
- "github.com/olivere/elastic/v7/config"
|
|
|
)
|
|
|
|
|
|
const (
|
|
@@ -147,11 +149,18 @@ func SaveData() {
|
|
|
fmt.Println("end")
|
|
|
}
|
|
|
|
|
|
+type tracelog struct{}
|
|
|
+
|
|
|
+//实现输出
|
|
|
+func (tracelog) Printf(format string, v ...interface{}) {
|
|
|
+ fmt.Printf(format, v...)
|
|
|
+}
|
|
|
+
|
|
|
func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
- fmt.Println("keyWord:",keyWord)
|
|
|
+ fmt.Println("keyWord:", keyWord)
|
|
|
pageSize := 20
|
|
|
keyWordArr, err := GetIndustryMapNameSlice(keyWord)
|
|
|
- keyWordArr=RemoveDuplicatesAndEmpty(keyWordArr)
|
|
|
+ keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
|
|
|
|
|
|
fmt.Println(keyWordArr)
|
|
|
fmt.Println(" keyWordArr ")
|
|
@@ -159,20 +168,26 @@ func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
if err != nil {
|
|
|
go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+"异常提醒:", "GetIndustryMapNameSlice:"+err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
- var sniff = false //<4>
|
|
|
- cfg := &config.Config{
|
|
|
- URL: ES_URL,
|
|
|
- Username: ES_USERNAME,
|
|
|
- Password: ES_PASSWORD,
|
|
|
- }
|
|
|
+ //var sniff = false //<4>
|
|
|
+ //cfg := &config.Config{
|
|
|
+ // URL: ES_URL,
|
|
|
+ // Username: ES_USERNAME,
|
|
|
+ // Password: ES_PASSWORD,
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //cfg.Sniff = &sniff
|
|
|
+ //client, err := elastic.NewClientFromConfig(cfg)
|
|
|
+ errorlog := log.New(os.Stdout, "APP", log.LstdFlags)
|
|
|
+ file := "./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))
|
|
|
|
|
|
- cfg.Sniff = &sniff
|
|
|
- client, err := elastic.NewClientFromConfig(cfg)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
var esIndex = "cygx_article"
|
|
|
-
|
|
|
searchMap := make(map[int]int)
|
|
|
//boolquery := elastic.NewBoolQuery()
|
|
|
//keyWordLen := len(keyWordArr)
|
|
@@ -193,9 +208,9 @@ func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
//}
|
|
|
keyWordStr := strings.Join(keyWordArr, ",")
|
|
|
|
|
|
- fmt.Println("keyWordStr ",keyWordStr)
|
|
|
+ fmt.Println("keyWordStr ", keyWordStr)
|
|
|
|
|
|
- queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `) BodyText:(`+keyWordStr+`)`).Analyzer("ik_smart")
|
|
|
+ queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `) BodyText:(` + keyWordStr + `)`).Analyzer("ik_smart")
|
|
|
|
|
|
boolqueryJson, err := json.Marshal(queryString)
|
|
|
fmt.Println("err:", err)
|
|
@@ -372,13 +387,48 @@ func esSearch(keyWord, categoryName string) (result []*models.SearchItem, err er
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func RemoveDuplicatesAndEmpty(a []string) (ret []string){
|
|
|
+func RemoveDuplicatesAndEmpty(a []string) (ret []string) {
|
|
|
a_len := len(a)
|
|
|
- for i:=0; i < a_len; i++{
|
|
|
- if (i > 0 && a[i-1] == a[i]) || len(a[i])==0{
|
|
|
- continue;
|
|
|
+ for i := 0; i < a_len; i++ {
|
|
|
+ if (i > 0 && a[i-1] == a[i]) || len(a[i]) == 0 {
|
|
|
+ continue
|
|
|
}
|
|
|
ret = append(ret, a[i])
|
|
|
}
|
|
|
return
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+func init21123() {
|
|
|
+ fmt.Println("start")
|
|
|
+ client, err := elastic.NewClient(elastic.SetURL(ES_URL), elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD), elastic.SetSniff(false))
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ }
|
|
|
+ fmt.Println(client)
|
|
|
+ keyWordStr := "医疗器械"
|
|
|
+ queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `)`)
|
|
|
+
|
|
|
+ boolqueryJson, err := json.Marshal(queryString)
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ fmt.Println("queryString ", string(boolqueryJson))
|
|
|
+
|
|
|
+ var esIndex = "cygx_article"
|
|
|
+ //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>")
|
|
|
+ request := client.Search(esIndex).Highlight(highlight).Query(queryString)
|
|
|
+
|
|
|
+ requestJson, err := json.Marshal(request)
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ fmt.Println("requestJson ", string(requestJson))
|
|
|
+
|
|
|
+ searchByMatch, err := request.Do(context.Background())
|
|
|
+
|
|
|
+ if searchByMatch.Hits != nil {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(searchByMatch)
|
|
|
+ fmt.Println("end")
|
|
|
+}
|