search.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package controllers
  2. import (
  3. "hongze/hongze_cygx/models"
  4. "hongze/hongze_cygx/services"
  5. )
  6. type SearchController struct {
  7. BaseAuthController
  8. }
  9. // @Title 搜索接口
  10. // @Description 搜索接口
  11. // @Param KeyWord query string true "搜索关键词"
  12. // @Success 200 {object} models.SearchItem
  13. // @router /list [get]
  14. func (this *SearchController) SearchList() {
  15. br := new(models.BaseResponse).Init()
  16. defer func() {
  17. this.Data["json"] = br
  18. this.ServeJSON()
  19. }()
  20. keyWord := this.GetString("KeyWord")
  21. if keyWord == "" {
  22. br.Msg = "请输入搜索词"
  23. br.ErrMsg = "请输入搜索词"
  24. return
  25. }
  26. /*
  27. user := this.User
  28. if user == nil {
  29. br.Msg = "请重新登录"
  30. br.Ret = 408
  31. return
  32. }
  33. categoryList, err := models.GetCategoryByCompanyId(user.CompanyId)
  34. if err != nil {
  35. br.Msg = "检索失败!"
  36. br.ErrMsg = "检索分类信息失败,Err:" + err.Error()
  37. return
  38. }
  39. var categoryNameArr []string
  40. for _, v := range categoryList {
  41. categoryNameArr = append(categoryNameArr, v.CategoryName)
  42. }
  43. categoryName := strings.Join(categoryNameArr, ",")
  44. */
  45. indexName := "article"
  46. result, err := services.EsMatchQuery(indexName, keyWord)
  47. //indexName := "article_list"
  48. //result, err := services.EsMatchPhraseQuery(indexName, keyWord)
  49. if err != nil {
  50. br.Msg = "检索失败"
  51. br.ErrMsg = "检索失败,Err:" + err.Error()
  52. return
  53. }
  54. if len(result) == 0 {
  55. result = make([]*models.SearchItem, 0)
  56. }
  57. br.Ret = 200
  58. br.Success = true
  59. br.Msg = "获取成功"
  60. br.Data = result
  61. }
  62. //https://blog.csdn.net/my_miuye/article/details/110496025
  63. //search