Browse Source

Es的连接改为全局变量

xingzai 3 years ago
parent
commit
b6afbb9290
3 changed files with 57 additions and 28 deletions
  1. 2 0
      controllers/article.go
  2. 29 28
      services/elastic.go
  3. 26 0
      utils/elastic.go

+ 2 - 0
controllers/article.go

@@ -854,10 +854,12 @@ func (this *ArticleController) Pdfwatermark() {
 			br.ErrMsg = "保存源文件到本地失败,Err:" + err.Error()
 			return
 		}
+		defer file.Close()
 		//获得文件的writer对象
 		writer := bufio.NewWriter(file)
 		written, _ := io.Copy(writer, reader)
 		fmt.Printf("Total length: %d", written)
+
 	}
 	newFile = uploadDir + "new_" + pdfName
 	onTop := true

+ 29 - 28
services/elastic.go

@@ -37,10 +37,11 @@ func NewClient() (client *elastic.Client, err error) {
 //indexName:索引名称
 //mappingJson:表结构
 func EsCreateIndex(indexName, mappingJson string) (err error) {
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
+
+	client := utils.Client
+	//if err != nil {
+	//	return
+	//}
 	//定义表结构
 	exists, err := client.IndexExists(indexName).Do(context.Background()) //<5>
 	if err != nil {
@@ -67,10 +68,10 @@ func EsAddOrEditData(indexName, docId string, item *ElasticTestArticleDetail) (e
 			fmt.Println("EsAddOrEditData Err:", err.Error())
 		}
 	}()
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
+	client := utils.Client
+	//if err != nil {
+	//	return
+	//}
 	searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
 	if err != nil && !strings.Contains(err.Error(), "404") {
 		fmt.Println("Get Err" + err.Error())
@@ -115,10 +116,10 @@ func EsAddOrEditDataV4(indexName, docId string, item *ElasticTestArticleDetailV4
 			fmt.Println("EsAddOrEditData Err:", err.Error())
 		}
 	}()
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
+	client := utils.Client
+	//if err != nil {
+	//	return
+	//}
 	searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
 	if err != nil && !strings.Contains(err.Error(), "404") {
 		fmt.Println("Get Err" + err.Error())
@@ -159,10 +160,10 @@ func EsAddOrEditDataV4(indexName, docId string, item *ElasticTestArticleDetailV4
 
 //删除数据
 func EsDeleteData(indexName, docId string) (err error) {
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
+	client := utils.Client
+	//if err != nil {
+	//	return
+	//}
 	resp, err := client.Delete().Index(indexName).Id(docId).Do(context.Background())
 	if err != nil {
 		return
@@ -176,10 +177,10 @@ func EsDeleteData(indexName, docId string) (err error) {
 }
 
 func MappingModify(indexName, mappingJson string) {
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
+	client := utils.Client
+	//if err != nil {
+	//	return
+	//}
 	result, err := client.PutMapping().Index(indexName).BodyString(mappingJson).Do(context.Background())
 	fmt.Println(err)
 	fmt.Println(result)
@@ -187,7 +188,7 @@ func MappingModify(indexName, mappingJson string) {
 }
 
 func EsMatchQuery(indexName, keyWord string) (result []*models.SearchItem, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	pageSize := 20
 	keyWordArr, err := GetIndustryMapNameSliceV2(keyWord)
 	fmt.Println(keyWordArr)
@@ -263,7 +264,7 @@ func EsMatchQuery(indexName, keyWord string) (result []*models.SearchItem, err e
 }
 
 func EsMatchPhraseQuery(indexName, keyWord string) (result []*models.SearchItem, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	pageSize := 20
 	keyWordArr, err := GetIndustryMapNameSliceV2(keyWord)
 	fmt.Println(keyWordArr)
@@ -334,7 +335,7 @@ func EsMatchPhraseQuery(indexName, keyWord string) (result []*models.SearchItem,
 }
 
 func EsMatchFunctionScoreQuery(indexName, keyWord string, startSize, pageSize int) (result []*models.SearchItem, total int64, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	keyWordArr, err := GetIndustryMapNameSliceV2(keyWord)
 	fmt.Println(keyWordArr)
 	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
@@ -437,7 +438,7 @@ func EsMatchFunctionScoreQuery(indexName, keyWord string, startSize, pageSize in
 }
 
 func EsMultiMatchFunctionScoreQuery(indexName, keyWord string, startSize, pageSize, userId int) (result []*models.SearchItem, total int64, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	keyWordArr, err := GetIndustryMapNameSliceV3(keyWord)
 	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
 	//artidArr := make([]elastic.Query, 0)
@@ -579,7 +580,7 @@ func EsMultiMatchFunctionScoreQuery(indexName, keyWord string, startSize, pageSi
 }
 
 func EsMultiMatchFunctionScoreQueryFix(indexName, keyWord string, startSize, pageSize int) (result []*models.SearchItem, total int64, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	keyWordArr, err := GetIndustryMapNameSliceV2(keyWord)
 
 	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
@@ -697,7 +698,7 @@ func GetArrSum(intArr []int) (sum int) {
 //}
 
 func EsMultiMatchFunctionScoreQuerySort(indexName, keyWord string, startSize, pageSize, userId int, orderColumn string) (result []*models.SearchItem, total int64, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	keyWordArr, err := GetIndustryMapNameSliceV3(keyWord)
 	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
 	//artidArr := make([]elastic.Query, 0)
@@ -809,7 +810,7 @@ func EsMultiMatchFunctionScoreQuerySort(indexName, keyWord string, startSize, pa
 }
 
 func EsMultiMatchFunctionScoreQueryTimeSort(indexName, keyWord string, startSize, pageSize, userId int) (result []*models.SearchItem, total int64, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	keyWordArr, err := GetIndustryMapNameSliceV2(keyWord)
 
 	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
@@ -895,7 +896,7 @@ func EsMultiMatchFunctionScoreQueryTimeSort(indexName, keyWord string, startSize
 }
 
 func EsSearchReport(indexName, keyWord string, startSize, pageSize, userId int) (result []*models.SearchItem, total int64, err error) {
-	client, err := NewClient()
+	client := utils.Client
 	keyWordArr, err := GetIndustryMapNameSliceV3(keyWord)
 	keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
 	n := 0

+ 26 - 0
utils/elastic.go

@@ -0,0 +1,26 @@
+package utils
+
+import (
+	"github.com/olivere/elastic/v7"
+	"time"
+)
+
+var Client *elastic.Client
+
+const (
+	ES_URL      = "http://es-cn-nif227b580019rgw6.public.elasticsearch.aliyuncs.com:9200" //<1>
+	ES_USERNAME = "elastic"                                                               //<2>
+	ES_PASSWORD = "hongze@2021"                                                           //<3>
+)
+
+func init() {
+	client, err := elastic.NewClient(
+		elastic.SetURL(ES_URL),
+		elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD),
+		elastic.SetSniff(false))
+	Client = client
+	if err != nil {
+		go SendEmail("ElasticSearch连接失败"+time.Now().Format("2006-01-02 15:04:05"), err.Error(), EmailSendToUsers)
+	}
+	return
+}