浏览代码

新增导入数据

rdluck 4 年之前
父节点
当前提交
71da435560
共有 6 个文件被更改,包括 26 次插入854 次删除
  1. 13 39
      models/article.go
  2. 12 12
      models/article_interview_apply.go
  3. 1 1
      models/db.go
  4. 0 148
      services/data_import.go
  5. 0 654
      services/elasticsearch.go
  6. 0 0
      temp/temp.txt

+ 13 - 39
models/article.go

@@ -6,31 +6,19 @@ import (
 )
 
 type CygxArticle struct {
-	Id               int    `orm:"column(id);pk"`
-	ArticleId        int    `description:"文章id"`
-	Title            string `description:"标题"`
-	TitleEn          string `description:"英文标题 "`
-	UpdateFrequency  string `description:"更新周期"`
-	CreateDate       string `description:"创建时间"`
-	PublishDate      string `description:"发布时间"`
-	Body             string `description:"内容"`
-	Abstract         string `description:"摘要"`
-	CategoryName     string `description:"一级分类"`
-	SubCategoryName  string `description:"二级分类"`
-	PublishStatus    int    `description:"发布状态"`
-	CategoryId       int    `description:"分类id"`
-	ExpertBackground string `description:"专家背景"`
-	ExpertNumber     string `description:"专家编号"`
-	InterviewDate    string `description:"访谈日期"`
-	Department       string `description:"作者"`
-	ArticleIdMd5     string `description:"ID,md5值"`
-}
-
-//新增文章
-func AddCygxArticle(item *CygxArticle) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
-	return
+	ArticleId        int       `description:"文章id"`
+	Title            string    `description:"标题"`
+	TitleEn          string    `description:"英文标题 "`
+	UpdateFrequency  string    `description:"更新周期"`
+	CreateDate       string    `description:"创建时间"`
+	PublishDate      string    `description:"发布时间"`
+	Body             string    `description:"内容"`
+	Abstract         string    `description:"摘要"`
+	CategoryName     string    `description:"一级分类"`
+	SubCategoryName  string    `description:"二级分类"`
+	InterviewTime    time.Time `description:"访谈时间"`
+	ExpertBackground string    `description:"专家背景"`
+	ExpertNumber     string    `description:"专家编号"`
 }
 
 type HomeArticle struct {
@@ -113,17 +101,3 @@ func ModifyArticleExpert(articleId int, expertNumStr, expertContentStr, intervie
 	_, err = o.Raw(sql, expertContentStr, expertNumStr, interviewDateStr, articleId).Exec()
 	return
 }
-
-type ArticleDetailTest struct {
-	ArticleId int    `description:"报告id"`
-	Title     string `description:"标题"`
-	BodyText  string `description:"内容"`
-	Body      string `json:"-" description:"内容"`
-}
-
-func GetArticleDetailTestById(articleId int) (item *ArticleDetailTest, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_article WHERE article_id = ? `
-	err = o.Raw(sql, articleId).QueryRow(&item)
-	return
-}

+ 12 - 12
models/article_interview_apply.go

@@ -64,17 +64,17 @@ type ArticleInterviewApplyList struct {
 	ArticleId        int
 	UserId           int
 	CreateTime       string
-	Title            string `description:"标题"`
-	TitleEn          string `description:"英文标题 "`
-	UpdateFrequency  string `description:"更新周期"`
-	CreateDate       string `description:"创建时间"`
-	PublishDate      string `description:"发布时间"`
-	Body             string `description:"内容"`
-	Abstract         string `description:"摘要"`
-	CategoryName     string `description:"一级分类"`
-	SubCategoryName  string `description:"二级分类"`
-	Status           string `description:"'待邀请','待访谈','已完成','已取消'"`
+	Title            string    `description:"标题"`
+	TitleEn          string    `description:"英文标题 "`
+	UpdateFrequency  string    `description:"更新周期"`
+	CreateDate       string    `description:"创建时间"`
+	PublishDate      string    `description:"发布时间"`
+	Body             string    `description:"内容"`
+	Abstract         string    `description:"摘要"`
+	CategoryName     string    `description:"一级分类"`
+	SubCategoryName  string    `description:"二级分类"`
+	Status           string    `description:"'待邀请','待访谈','已完成','已取消'"`
 	InterviewTime    string `description:"访谈时间"`
-	ExpertBackground string `description:"专家背景"`
-	ExpertNumber     string `description:"专家编号"`
+	ExpertBackground string    `description:"专家背景"`
+	ExpertNumber     string    `description:"专家编号"`
 }

+ 1 - 1
models/db.go

@@ -14,6 +14,7 @@ func init() {
 	orm.SetMaxIdleConns("default", 50)
 	orm.SetMaxOpenConns("default", 100)
 
+
 	db, _ := orm.GetDB("default")
 	db.SetConnMaxLifetime(10 * time.Minute)
 
@@ -37,6 +38,5 @@ func init() {
 		new(Resource),
 		new(CygxApplyRecord),
 		new(CygxInterviewApply),
-		new(CygxArticle),
 	)
 }

+ 0 - 148
services/data_import.go

@@ -1,148 +0,0 @@
-package services
-
-import (
-	"fmt"
-	"github.com/PuerkitoBio/goquery"
-	"github.com/tealeg/xlsx"
-	"hongze/hongze_cygx/models"
-	"hongze/hongze_cygx/utils"
-	"html"
-	"strconv"
-	"strings"
-	"time"
-)
-
-//上海数据同步
-func ImportData() {
-	fileName := "./temp/权益报告导入0319.xlsx"
-	xlFile, err := xlsx.OpenFile(fileName)
-	if err != nil {
-		fmt.Printf("open failed: %s\n", err)
-	}
-	for _, sheet := range xlFile.Sheet {
-		row := sheet.Rows
-		for k, v := range row {
-			if k > 0 {
-				//导入数据
-				item := new(models.CygxArticle)
-				cells := v.Cells
-				articleIdStr := cells[0].Value
-				articleIdInt, _ := strconv.Atoi(articleIdStr)
-				//判断文章是否已经存在
-				existItem, err := models.GetArticleDetailById(articleIdInt)
-				if err != nil && err.Error() != utils.ErrNoRow() {
-					fmt.Println("GetArticleDetailById Err:" + err.Error())
-					return
-				}
-				if existItem != nil && existItem.ArticleId > 0 {
-					fmt.Println("exist", articleIdInt)
-					continue
-				}
-				title := cells[1].String()
-				titleEn := cells[2].String()
-				updateFrequency := cells[3].String()
-				createDate := cells[4].String()
-				createDateParse, err := time.Parse(utils.FormatDateTime, createDate)
-				if err != nil {
-					fmt.Println("createDateParse err:", err.Error())
-					return
-				}
-				fmt.Println("createDateParse ", createDateParse)
-
-				publishDate := cells[6].String()
-				publishDate=strings.Replace(publishDate,`\`,"",-1)
-				fmt.Println("publishDate: ", publishDate)
-
-				publishDateParse, err := time.Parse(utils.FormatDateTime, publishDate)
-				if err != nil {
-					fmt.Println("publishDateParse err:", err.Error())
-					return
-				}
-				fmt.Println("publishDateParse ", publishDateParse)
-
-				body := cells[11].String()
-				abstract := cells[12].String()
-				categoryName := cells[15].String()
-				subCategoryName := cells[16].String()
-				categoryId, _ := cells[18].Int()
-
-				doc, err := goquery.NewDocumentFromReader(strings.NewReader(body))
-				if err != nil {
-					fmt.Println("create doc err:", err.Error())
-					return
-				}
-
-				var expertNumArr []string
-				var expertContentArr []string
-				var interviewDateArr []string
-
-				doc.Find("p").Each(func(i int, s *goquery.Selection) {
-					contentTxt := s.Text()
-					if strings.Contains(contentTxt, "#访谈时间:") || strings.Contains(contentTxt, "访谈时间:") {
-						interviewDate := s.Next().Text()
-						interviewDateArr = append(interviewDateArr, interviewDate)
-					}
-					if strings.Contains(contentTxt, "#专家评价") || strings.Contains(contentTxt, "专家评价") {
-						expertContent := s.Next().Text()
-						if expertContent == "" {
-							expertContent = contentTxt
-						}
-						if expertContent != "" {
-							rightIndex := strings.Index(expertContent, ")")
-							if rightIndex == 0 {
-								rightIndex = strings.Index(expertContent, ")")
-							}
-							expertNum := expertContent[:rightIndex]
-							expertNum = strings.Replace(expertNum, "(", "", -1)
-							expertNum = strings.Replace(expertNum, "(", "", -1)
-							expertNum = strings.Replace(expertNum, "专家评价", "", -1)
-							if expertNum != "" {
-								expertNumArr = append(expertNumArr, expertNum)
-								rightIndex = rightIndex
-								expertContentStr := expertContent[rightIndex:]
-								expertContentStr = strings.Replace(expertContentStr, ")", "", -1)
-								expertContentStr = strings.TrimLeft(expertContentStr, ":")
-								expertContentStr = strings.TrimRight(expertContentStr, "(推荐")
-								expertContentArr = append(expertContentArr, expertContentStr)
-							}
-						}
-					}
-				})
-				var expertNumStr, expertContentStr, interviewDateStr string
-				if len(expertNumArr) > 0 {
-					expertNumStr = expertNumArr[0]
-				}
-				if len(expertContentArr) > 0 {
-					expertContentStr = expertContentArr[0]
-				}
-
-				if len(interviewDateArr) > 0 {
-					interviewDateStr = interviewDateArr[0]
-				}
-
-				item.ArticleId = articleIdInt
-				item.Title = title
-				item.TitleEn = titleEn
-				item.UpdateFrequency = updateFrequency
-				item.CreateDate = createDateParse.Format(utils.FormatDateTime)
-				item.PublishDate = publishDateParse.Format(utils.FormatDateTime)
-				item.Body = html.EscapeString(body)
-				item.Abstract = html.EscapeString(abstract)
-				item.CategoryName = categoryName
-				item.SubCategoryName = subCategoryName
-				item.CategoryId = categoryId
-				item.PublishStatus = 1
-				item.ExpertBackground = expertContentStr
-				item.ExpertNumber = expertNumStr
-				item.InterviewDate = interviewDateStr
-				item.Department = "策略组"
-				item.ArticleIdMd5 = utils.MD5(articleIdStr)
-				_, err = models.AddCygxArticle(item)
-				if err != nil {
-					fmt.Println("AddCygxArticle Err:", err.Error())
-					return
-				}
-			}
-		}
-	}
-}

+ 0 - 654
services/elasticsearch.go

@@ -1,654 +0,0 @@
-package services
-
-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"
-)
-
-const (
-	ES_URL      = "http://es-cn-nif227b580019rgw6.public.elasticsearch.aliyuncs.com:9200" //<1>
-	ES_USERNAME = "elastic"                                                               //<2>
-	ES_PASSWORD = "hongze@2021"                                                           //<3>
-	//Grafana pwd-> 20521bb9
-	//Grafana username-> emon
-)
-
-func SaveData() {
-	//fmt.Println("start")
-	var sniff = false //<4>
-	cfg := &config.Config{
-		URL:      ES_URL,
-		Username: ES_USERNAME,
-		Password: ES_PASSWORD,
-	}
-
-	cfg.Sniff = &sniff
-	var client, err = elastic.NewClientFromConfig(cfg)
-	if err != nil {
-		fmt.Println("NewClientFromConfig Err:" + err.Error())
-		return
-	}
-	var esIndex = "cygx_article"
-	//var esType = "article"
-	//
-	exists, err := client.IndexExists(esIndex).Do(context.Background()) //<5>
-	if err != nil {
-		fmt.Println("IndexExists Err:" + err.Error())
-		return
-	}
-	if !exists {
-		_, err = client.CreateIndex(esIndex).Do(context.Background())
-		if err != nil {
-			fmt.Println("CreateIndex Err:" + err.Error())
-			return
-		}
-	}
-
-	/*
-		3161,3190,3226,3244,3264,3285,3310,3334,3370,3397,3418,3446,3477,3497,3526,3554
-	*/
-
-	idStr := `3584,3644`
-	idArr := strings.Split(idStr, ",")
-	for _, v := range idArr {
-		id, _ := strconv.Atoi(v)
-		item, err := models.GetArticleDetailById(id)
-		if err != nil {
-			fmt.Println("GetArticleDetailById Err:" + err.Error())
-			return
-		}
-		content := html.UnescapeString(item.Body)
-		doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
-		if err != nil {
-			fmt.Println("create doc err:", err.Error())
-			return
-		}
-		bodyText := doc.Text()
-		item.BodyText = bodyText
-		//新增
-		resp, err := client.Index().Index(esIndex).Id(strconv.Itoa(item.ArticleId)).BodyJson(item).Do(context.Background())
-		if err != nil {
-			fmt.Println("insert es failed", err.Error())
-			return
-		}
-		fmt.Println(resp.Status)
-	}
-
-	/*
-
-		//根据id查询
-		searchById, err := client.Get().Index(esIndex).Type(esType).Id("3138").Do(context.Background())
-		if searchById.Found {
-			body, err := searchById.Source.MarshalJSON()
-			fmt.Println("body:",string(body))
-			fmt.Println(err)
-			//var resultType models.ArticleDetail
-			//if err := json.Unmarshal(searchById.Source,&resultType); err != nil{
-			//	log.Error(err.Error())
-			//}
-			//fmt.Printf("search by id: %#v \n",resultType)
-		}
-	*/
-
-	////查询index中所有的数据
-	//var resultType models.CygxArticle
-	//searchAll,err := client.Search(esIndex).Type(esType).Do(context.Background())
-	//for _,item := range searchAll.Each(reflect.TypeOf(resultType)) {
-	//	language := item.(models.CygxArticle)
-	//	fmt.Printf("search by index all: %#v \n",language)
-	//}
-
-	//根据检索条件查询
-
-	// boolquery := elastic.NewBoolQuery()
-
-	// boolquery.Should(elastic.NewMatchQuery("Body", "专家"))
-	// highlight := elastic.NewHighlight()
-	// highlight = highlight.Fields(elastic.NewHighlighterField("Body"))
-	// highlight = highlight.PreTags("<font color='red'>").PostTags("</font>")
-
-	// var pageSize int
-	// pageSize = 20
-
-	// searchByMatch, err := client.Search(esIndex).Highlight(highlight).Size(pageSize).Query(boolquery).Do(context.Background())
-
-	// var result string
-	// if searchByMatch.Hits != nil {
-
-	// }
-	// //fmt.Println(string(result))
-
-	// utils.FileLog.Info("%s", string(result))
-
-	//var resultType models.CygxArticle
-	//for k,item := range searchByMatch.Each(reflect.TypeOf(resultType)) {
-	//	language := item.(models.CygxArticle)
-	//	fmt.Printf("search by match: %#v \n",language)
-	//
-	//	fmt.Println(k)
-	//	result,err:=json.Marshal(language)
-	//	fmt.Println(err)
-
-	//	utils.FileLog.Info("%s",string(result))
-	//}
-
-	// Perform the search request.
-	//searchByMatch, err := client.Search(esIndex).Type(esType).Query(query).From(1).Size(10).Do(context.Background())
-
-	fmt.Println("end")
-}
-
-type tracelog struct{}
-
-//实现输出
-func (tracelog) Printf(format string, v ...interface{}) {
-	fmt.Printf(format, v...)
-}
-
-func SearchByKeyWordBack02(keyWord string) (result []*models.SearchItem, err error) {
-	fmt.Println("keyWord:", keyWord)
-	pageSize := 20
-	keyWordArr, err := GetIndustryMapNameSlice(keyWord)
-	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
-
-	fmt.Println(keyWordArr)
-	fmt.Println(" keyWordArr ")
-
-	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,
-	//}
-	//
-	//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))
-
-	var esIndex = "cygx_article"
-	searchMap := make(map[int]int)
-	//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, ",")
-
-	fmt.Println("keyWordStr ", keyWordStr)
-
-	queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `) BodyText:(` + keyWordStr + `)`).Analyzer("ik_smart")
-
-	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>")
-	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
-	}
-	if searchByMatch.Hits != nil {
-		for _, v := range searchByMatch.Hits.Hits {
-			articleJson, err := v.Source.MarshalJSON()
-			if err != nil {
-				return nil, err
-			}
-			article := new(models.CygxArticle)
-			err = json.Unmarshal(articleJson, &article)
-			if err != nil {
-				return nil, err
-			}
-			if _, ok := searchMap[article.ArticleId]; !ok {
-				searchItem := new(models.SearchItem)
-				searchItem.ArticleId, _ = strconv.Atoi(v.Id)
-				searchItem.Body = v.Highlight["BodyText"]
-				var title string
-				if len(v.Highlight["Title"]) > 0 {
-					title = v.Highlight["Title"][0]
-				} else {
-					title = article.Title
-				}
-				searchItem.Title = title
-				searchItem.PublishDate = article.PublishDate
-				result = append(result, searchItem)
-				searchMap[article.ArticleId] = article.ArticleId
-			}
-		}
-	}
-	return
-}
-
-func SearchByKeyWordBack(keyWord string) (result []*models.SearchItem, err error) {
-	pageSize := 20
-	keyWordArr, err := GetIndustryMapNameSlice(keyWord)
-	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,
-	}
-
-	cfg.Sniff = &sniff
-	client, err := elastic.NewClientFromConfig(cfg)
-	if err != nil {
-		return
-	}
-	var esIndex = "cygx_article"
-
-	searchMap := make(map[int]int)
-	for _, v := range keyWordArr {
-		keyWord = v
-		boolquery := elastic.NewBoolQuery()
-		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())
-		if err != nil {
-			return result, err
-		}
-		if searchByMatch.Hits != nil {
-			for _, v := range searchByMatch.Hits.Hits {
-				articleJson, err := v.Source.MarshalJSON()
-				if err != nil {
-					return nil, err
-				}
-				article := new(models.CygxArticle)
-				err = json.Unmarshal(articleJson, &article)
-				if err != nil {
-					return nil, err
-				}
-				if _, ok := searchMap[article.ArticleId]; !ok {
-					searchItem := new(models.SearchItem)
-					searchItem.ArticleId, _ = strconv.Atoi(v.Id)
-					searchItem.Body = v.Highlight["BodyText"]
-					var title string
-					if len(v.Highlight["Title"]) > 0 {
-						title = v.Highlight["Title"][0]
-					} else {
-						title = article.Title
-					}
-					searchItem.Title = title
-					searchItem.PublishDate = article.PublishDate
-					result = append(result, searchItem)
-					searchMap[article.ArticleId] = article.ArticleId
-				}
-			}
-		}
-	}
-	return
-}
-
-func esSearch(keyWord, categoryName string) (result []*models.SearchItem, err error) {
-	pageSize := 20
-	var sniff = false //<4>
-	cfg := &config.Config{
-		URL:      ES_URL,
-		Username: ES_USERNAME,
-		Password: ES_PASSWORD,
-	}
-
-	cfg.Sniff = &sniff
-	client, err := elastic.NewClientFromConfig(cfg)
-	if err != nil {
-		return
-	}
-	var esIndex = "cygx_article"
-
-	termsQuery := elastic.NewTermsQuery("category_name", categoryName)
-
-	boolquery := elastic.NewBoolQuery()
-	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(termsQuery).Query(boolquery).Do(context.Background())
-
-	if err != nil {
-		return result, err
-	}
-	searchMap := make(map[int]int)
-	if searchByMatch.Hits != nil {
-		for _, v := range searchByMatch.Hits.Hits {
-			articleJson, err := v.Source.MarshalJSON()
-			if err != nil {
-				return nil, err
-			}
-			article := new(models.CygxArticle)
-			err = json.Unmarshal(articleJson, &article)
-			if err != nil {
-				return nil, err
-			}
-			if _, ok := searchMap[article.ArticleId]; !ok {
-				searchItem := new(models.SearchItem)
-				searchItem.ArticleId, _ = strconv.Atoi(v.Id)
-				searchItem.Body = v.Highlight["BodyText"]
-				var title string
-				if len(v.Highlight["Title"]) > 0 {
-					title = v.Highlight["Title"][0]
-				} else {
-					title = article.Title
-				}
-				searchItem.Title = title
-				searchItem.PublishDate = article.PublishDate
-				result = append(result, searchItem)
-				searchMap[article.ArticleId] = article.ArticleId
-			}
-		}
-	}
-	return
-}
-
-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
-		}
-		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")
-}
-
-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:医疗")
-	//.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
-}
-
-func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
-	fmt.Println("keyWord:", keyWord)
-	keyWord = "医药"
-	pageSize := 20
-	keyWordArr, err := GetIndustryMapNameSlice(keyWord)
-	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
-
-	fmt.Println(keyWordArr)
-	fmt.Println(" keyWordArr ")
-
-	if err != nil {
-		go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+"异常提醒:", "GetIndustryMapNameSlice:"+err.Error(), utils.EmailSendToUsers)
-	}
-	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"
-	var esIndex = "article_two"
-	searchMap := make(map[int]int)
-
-	//queryString := elastic.NewQueryStringQuery(`Title:医疗 BodyText:医疗`).Analyzer("ik_smart")
-
-	//queryTeerms:=elastic.NewTermsQuery("Title","医疗","费用")
-
-	//queryMatchPhrase:=elastic.NewMatchPhraseQuery("Title","费用")
-	//.Analyzer("ik_smart")
-	//.Analyzer("ik_smart")
-	//boolquery.Must(elastic.NewMatchQuery("Title", keyWord), elastic.NewMatchQuery("BodyText", keyWord))
-	mapping := client.GetMapping()
-	mapJson, err := json.Marshal(mapping)
-	utils.FileLog.Info("%s", string(mapJson))
-	boolquery := elastic.NewBoolQuery()
-
-	keyLen := len(keyWordArr)
-	n := float64(keyLen)
-	matchArr := make([]elastic.Query, 0)
-	for _, v := range keyWordArr {
-		if v != "" {
-			matchq1 := elastic.NewMatchQuery("Title", v).Boost(n).Analyzer("ik_smart")
-			matchq2 := elastic.NewMatchQuery("BodyText", v).Boost(n).Analyzer("ik_smart")
-			matchArr = append(matchArr, matchq1)
-			matchArr = append(matchArr, matchq2)
-		}
-		n--
-	}
-	//matchArr=append(matchArr,matchq1)
-	//matchArr=append(matchArr,matchq2)
-
-	boolquery.Should(matchArr...)
-	//boolquery.Must(elastic.NewMatchQuery("BodyText", keyWord).Boost(1).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).Size(pageSize).Query(queryString)
-	request := client.Search(esIndex).Highlight(highlight).Size(pageSize).Query(boolquery)
-	searchByMatch, err := request.Do(context.Background())
-	fmt.Println(searchByMatch, err)
-	//searchByMatch, err := client.Search(esIndex).Highlight(highlight).Size(pageSize).Do(context.Background())
-	if err != nil {
-		return result, err
-	}
-	fmt.Println(searchByMatch.Status, searchByMatch.TotalHits())
-	if searchByMatch.Hits != nil {
-		for _, v := range searchByMatch.Hits.Hits {
-			articleJson, err := v.Source.MarshalJSON()
-			if err != nil {
-				return nil, err
-			}
-			article := new(models.CygxArticle)
-			err = json.Unmarshal(articleJson, &article)
-			if err != nil {
-				return nil, err
-			}
-			if _, ok := searchMap[article.ArticleId]; !ok {
-				searchItem := new(models.SearchItem)
-				searchItem.ArticleId, _ = strconv.Atoi(v.Id)
-				searchItem.Body = v.Highlight["BodyText"]
-				var title string
-				if len(v.Highlight["Title"]) > 0 {
-					title = v.Highlight["Title"][0]
-				} else {
-					title = article.Title
-				}
-				searchItem.Title = title
-				searchItem.PublishDate = article.PublishDate
-				result = append(result, searchItem)
-				searchMap[article.ArticleId] = article.ArticleId
-			}
-		}
-	}
-	return
-}
-
-func AddMap() {
-	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))
-	if err != nil {
-		fmt.Println("NewClient Err:", err.Error())
-	}
-
-	bodyJson := `{
-  "mappings": {
-    "properties": {
-      "ArticleId": {
-        "type": "integer"
-      },
-      "Title": {
-        "type": "text",
-        "analyzer": "ik_smart"
-      },
-      "BodyText": {
-        "type": "text",
-        "analyzer": "ik_smart"
-      }
-    }
-  }
-}`
-	//var esMappingIndex = "article_mapping"
-	var esIndex = "article_two"
-
-	exists, err := client.IndexExists(esIndex).Do(context.Background()) //<5>
-	if err != nil {
-		fmt.Println("IndexExists Err:" + err.Error())
-		return
-	}
-	fmt.Println("exists:", exists)
-	if !exists {
-		_, err = client.CreateIndex(esIndex).BodyJson(bodyJson).Do(context.Background())
-		//BodyJson(bodyJson).Do(context.Background())
-		if err != nil {
-			fmt.Println("CreateIndex Err:" + err.Error())
-			return
-		}
-	}
-
-	item, err := models.GetArticleDetailTestById(3584)
-	if err != nil {
-		fmt.Println("GetArticleDetailById Err:" + err.Error())
-		return
-	}
-	content := html.UnescapeString(item.Body)
-	doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
-	if err != nil {
-		fmt.Println("create doc err:", err.Error())
-		return
-	}
-	bodyText := doc.Text()
-	item.BodyText = bodyText
-	//新增
-	resp, err := client.Index().Index(esIndex).Id(strconv.Itoa(item.ArticleId)).BodyJson(item).Do(context.Background())
-	if err != nil {
-		fmt.Println("insert es failed", err.Error())
-		return
-	}
-	fmt.Println(resp)
-	//mappping := make(map[string]interface{})
-	//mappping[esMappingIndex] = bodyJson
-	//putResult,err:=client.PutMapping().Index(esIndex).BodyJson(mappping).Do(context.Background())
-	//mapping,err := client.GetMapping().Index(esIndex).Do(context.Background())
-	//fmt.Println(mapping)
-	//mapJson, err := json.Marshal(mapping)
-	//utils.FileLog.Info("%s", string(mapJson))
-	//fmt.Println(esMappingIndex)
-	//
-	//fmt.Println(err)
-	//fmt.Println(putResult)
-}

+ 0 - 0
temp/temp.txt