package controllers import ( "fmt" "hongze/hongze_cygx/models" "hongze/hongze_cygx/services" "hongze/hongze_cygx/utils" "rdluck_tools/paging" "time" ) type SearchController struct { BaseAuthController } // @Title 搜索接口 // @Description 搜索接口 // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Param KeyWord query string true "搜索关键词" // @Success 200 {object} models.SearchItem // @router /list [get] func (this *SearchController) SearchList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = paging.StartIndex(currentIndex, pageSize) fmt.Println(startSize) keyWord := this.GetString("KeyWord") if keyWord == "" { br.Msg = "请输入搜索词" br.ErrMsg = "请输入搜索词" return } user := this.User if user == nil { br.Msg = "请重新登录" br.Ret = 408 return } /* categoryList, err := models.GetCategoryByCompanyId(user.CompanyId) if err != nil { br.Msg = "检索失败!" br.ErrMsg = "检索分类信息失败,Err:" + err.Error() return } var categoryNameArr []string for _, v := range categoryList { categoryNameArr = append(categoryNameArr, v.CategoryName) } categoryName := strings.Join(categoryNameArr, ",") */ indexName := "article_list" //EsMultiMatchFunctionScoreQuery //EsMatchFunctionScoreQuery result, total, err := services.EsMultiMatchFunctionScoreQuery(indexName, keyWord, startSize, pageSize) //services.EsMatchFunctionScoreQuery(indexName, keyWord, startSize, pageSize) //services.EsMatchQuery(indexName, keyWord) //result, err := services.EsMatchQuery(indexName, keyWord)//services.EsMatchQuery(indexName, keyWord) //indexName := "article_list" //result, err := services.EsMatchPhraseQuery(indexName, keyWord) if err != nil { br.Msg = "检索失败" br.ErrMsg = "检索失败,Err:" + err.Error() return } if len(result) == 0 { result = make([]*models.SearchItem, 0) } { keyWordItem := new(models.CygxSearchKeyWord) keyWordItem.UserId = user.UserId keyWordItem.KeyWord = keyWord keyWordItem.CreateTime = time.Now() go models.AddSearchKeyWord(keyWordItem) } resp := new(models.SearchResp) page := paging.GetPaging(currentIndex, pageSize, int(total)) resp.Paging = page resp.List = result br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } //https://blog.csdn.net/my_miuye/article/details/110496025 //search