rdluck 4 years ago
parent
commit
e884dda6c1
2 changed files with 75 additions and 25 deletions
  1. 1 1
      models/apply_record.go
  2. 74 24
      services/elasticsearch.go

+ 1 - 1
models/apply_record.go

@@ -46,7 +46,7 @@ func AddApplyRecord(item *ApplyTryReq, mobile, companyNamePay string, userId, co
 
 func GetApplyRecordCount(userId int) (count int, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT COUNT(1) AS count FROM cygx_apply_record WHERE user_id=? `
+	sql := `SELECT COUNT(1) AS count FROM cygx_apply_record WHERE user_id=? AND status=0 `
 	err = o.Raw(sql, userId).QueryRow(&count)
 	return
 }

+ 74 - 24
services/elasticsearch.go

@@ -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")
+}