rdluck 4 years ago
parent
commit
9a52948afe
3 changed files with 51 additions and 58 deletions
  1. 3 3
      controllers/article.go
  2. 1 1
      models/article_interview_apply.go
  3. 47 54
      services/elasticsearch.go

+ 3 - 3
controllers/article.go

@@ -233,11 +233,11 @@ func (this *ArticleController) InterviewApply() {
 		item.ModifyTime = time.Now()
 		_, err = models.AddCygxInterviewApply(item)
 		if err != nil {
-			br.Msg = "收藏申请"
-			br.ErrMsg = "收藏申请,Err:" + err.Error()
+			br.Msg = "申请失败"
+			br.ErrMsg = "申请失败,Err:" + err.Error()
 			return
 		}
-		br.Msg = "收藏成功"
+		br.Msg = "申请成功"
 		resp.Status = 1
 	} else {
 		err = models.RemoveArticleInterviewApply(uid, req.ArticleId)

+ 1 - 1
models/article_interview_apply.go

@@ -54,7 +54,7 @@ func GetArticleInterviewApply(userId, articleId int) (item *CygxInterviewApply,
 }
 
 func GetArticleInterviewApplyCount(userId, articleId int) (count int, err error) {
-	sql := `SELECT COUNT(1) AS count FROM cygx_article_collect WHERE user_id=? AND article_id=? `
+	sql := `SELECT COUNT(1) AS count FROM cygx_interview_apply WHERE user_id=? AND article_id=? `
 	err = orm.NewOrm().Raw(sql, userId, articleId).QueryRow(&count)
 	return
 }

+ 47 - 54
services/elasticsearch.go

@@ -152,9 +152,23 @@ func SaveData() {
 }
 
 func SearchByKeyWord(keyWord,categoryName string, pageSize int) (result []*models.SearchItem, err error) {
-	if pageSize == 0 {
-		pageSize = 20
+	fmt.Println("get start keyWordArr")
+	keyWordArr, err := GetIndustryMapNameSlice(keyWord)
+	if err != nil {
+		go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+"异常提醒:", "GetIndustryMapNameSlice:"+err.Error(), utils.EmailSendToUsers)
+	}
+
+	for k, v := range keyWordArr {
+		fmt.Println(k, v)
+		go func() {
+			esSearch(v,"")
+		}()
 	}
+	return
+}
+
+func esSearch(keyWord,categoryName string)(result []*models.SearchItem, err error) {
+	pageSize:=20
 	var sniff = false //<4>
 	cfg := &config.Config{
 		URL:      ES_URL,
@@ -172,64 +186,43 @@ func SearchByKeyWord(keyWord,categoryName string, pageSize int) (result []*model
 	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())
 
-	fmt.Println("get start keyWordArr")
-	keyWordArr, err := GetIndustryMapNameSlice(keyWord)
 	if err != nil {
-		go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+"异常提醒:", "GetIndustryMapNameSlice:"+err.Error(), utils.EmailSendToUsers)
+		return result, err
 	}
-	keyWordArr = append(keyWordArr, keyWord)
-	fmt.Println(keyWord)
-	fmt.Println(keyWordArr)
-	var newKeyWordArr []string
-	if len(keyWordArr) > 2 {
-		newKeyWordArr = append(keyWordArr[2:], keyWordArr[0:2]...)
-	}
-	fmt.Println(newKeyWordArr)
-	fmt.Println("get end keyWordArr")
 	searchMap := make(map[int]int)
-	for k, v := range newKeyWordArr {
-		fmt.Println(k, v)
-
-		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
-		}
-		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
+	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
-}
+}