elastic.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package services
  2. import (
  3. "context"
  4. "eta_gn/eta_task/models"
  5. "eta_gn/eta_task/services/alarm_msg"
  6. "eta_gn/eta_task/utils"
  7. "fmt"
  8. "github.com/olivere/elastic/v7"
  9. "strings"
  10. )
  11. func NewClient() (client *elastic.Client, err error) {
  12. client, err = elastic.NewClient(
  13. elastic.SetURL(utils.ES_URL),
  14. elastic.SetBasicAuth(utils.ES_USERNAME, utils.ES_PASSWORD),
  15. elastic.SetSniff(false))
  16. return
  17. }
  18. func EsAddOrEditReport(indexName, docId string, item *models.ElasticReportDetail) (err error) {
  19. defer func() {
  20. if err != nil {
  21. fmt.Println("EsAddOrEditReport Err:", err.Error())
  22. }
  23. }()
  24. client, err := NewClient()
  25. if err != nil {
  26. return
  27. }
  28. searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
  29. if err != nil && !strings.Contains(err.Error(), "404") {
  30. fmt.Println("Get Err" + err.Error())
  31. return
  32. }
  33. if searchById != nil && searchById.Found {
  34. resp, err := client.Update().Index(indexName).Id(docId).Doc(map[string]interface{}{
  35. "ReportId": item.ReportId,
  36. "ReportChapterId": item.ReportChapterId,
  37. "Title": item.Title,
  38. "Abstract": item.Abstract,
  39. "BodyContent": item.BodyContent,
  40. "PublishTime": item.PublishTime,
  41. "PublishState": item.PublishState,
  42. "Author": item.Author,
  43. "ClassifyIdFirst": item.ClassifyIdFirst,
  44. "ClassifyNameFirst": item.ClassifyNameFirst,
  45. "ClassifyIdSecond": item.ClassifyIdSecond,
  46. "ClassifyNameSecond": item.ClassifyNameSecond,
  47. "Categories": item.Categories,
  48. "StageStr": item.StageStr,
  49. }).Do(context.Background())
  50. if err != nil {
  51. return err
  52. }
  53. if resp.Status == 0 {
  54. fmt.Println("修改成功" + docId)
  55. err = nil
  56. } else {
  57. fmt.Println("EditData", resp.Status, resp.Result)
  58. }
  59. } else {
  60. resp, err := client.Index().Index(indexName).Id(docId).BodyJson(item).Do(context.Background())
  61. if err != nil {
  62. fmt.Println("新增失败:", err.Error())
  63. return err
  64. }
  65. if resp.Status == 0 && resp.Result == "created" {
  66. fmt.Println("新增成功" + docId)
  67. return nil
  68. } else {
  69. fmt.Println("AddData", resp.Status, resp.Result)
  70. }
  71. }
  72. return
  73. }
  74. func EsAddOrEditEnglishReport(indexName, docId string, item *models.ElasticEnglishReportDetail) (err error) {
  75. defer func() {
  76. if err != nil {
  77. fmt.Println("EsAddOrEditEnglishReport Err:", err.Error())
  78. go alarm_msg.SendAlarmMsg("新增编辑es英文报告 EsAddOrEditEnglishReport,Err:"+err.Error(), 3)
  79. }
  80. }()
  81. client, err := NewClient()
  82. if err != nil {
  83. return
  84. }
  85. searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
  86. if err != nil {
  87. if strings.Contains(err.Error(), "404") {
  88. err = nil
  89. } else {
  90. fmt.Println("Get Err" + err.Error())
  91. return
  92. }
  93. }
  94. if searchById != nil && searchById.Found {
  95. resp, e := client.Update().Index(indexName).Id(docId).Doc(map[string]interface{}{
  96. "Id": item.Id,
  97. "ReportId": item.ReportId,
  98. "VideoId": item.VideoId,
  99. "Title": item.Title,
  100. "Abstract": item.Abstract,
  101. "BodyContent": item.BodyContent,
  102. "PublishTime": item.PublishTime,
  103. "PublishState": item.PublishState,
  104. "Author": item.Author,
  105. "ClassifyIdFirst": item.ClassifyIdFirst,
  106. "ClassifyNameFirst": item.ClassifyNameFirst,
  107. "ClassifyIdSecond": item.ClassifyIdSecond,
  108. "ClassifyNameSecond": item.ClassifyNameSecond,
  109. "CreateTime": item.CreateTime,
  110. "Overview": item.Overview,
  111. "ReportCode": item.ReportCode,
  112. "Frequency": item.Frequency,
  113. "StageStr": item.StageStr,
  114. "ContentSub": item.ContentSub,
  115. }).Do(context.Background())
  116. if e != nil {
  117. err = e
  118. return
  119. }
  120. if resp.Status == 0 {
  121. fmt.Println("修改成功" + docId)
  122. err = nil
  123. } else {
  124. fmt.Println("EditData", resp.Status, resp.Result)
  125. }
  126. } else {
  127. resp, e := client.Index().Index(indexName).Id(docId).BodyJson(item).Do(context.Background())
  128. if e != nil {
  129. err = e
  130. fmt.Println("新增失败:", err.Error())
  131. return
  132. }
  133. if resp.Status == 0 && resp.Result == "created" {
  134. fmt.Println("新增成功" + docId)
  135. return
  136. } else {
  137. fmt.Println("AddData", resp.Status, resp.Result)
  138. }
  139. }
  140. return
  141. }