1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package service
- import (
- MC "app.yhyue.com/moapp/jybase/common"
- IC "jyBXCore/rpc/init"
- "jyBXCore/rpc/model/es"
- "jyBXCore/rpc/type/bxcore"
- "jyBXCore/rpc/util"
- "log"
- "strings"
- "time"
- )
- // GetBidSearchData 默认查询缓存数据 只查标题
- // 登录用户默认搜索500条数据,付费用户字段和免费用户字段不同,未登录用户查询5000条。
- // 标信息搜索 isCache:是否是获取缓存信息
- func GetBidSearchData(in *bxcore.SearchReq, isCache bool) (count int64, list []*bxcore.SearchList) {
- var start = int((in.PageNum - 1) * in.PageSize)
- if start >= 0 {
- t := time.Now()
- fields := MC.If(in.IsPay, es.BidSearchFieldOfVip, es.BidSearchFieldBase).(string)
- //in.BidField(医疗)领域化字段
- if in.BidField != "" {
- fields = es.BidSearchDomainField
- }
- //IC.C.FileSignBool列表是否显示附件开关
- if IC.C.FileSignBool {
- fields = fields + es.BidSearchFieldFile
- }
- biddingSearch := es.SearchByES{
- Index: es.INDEX,
- IType: es.TYPE,
- Query: es.GetSearchQuery(in, es.GetBidSearchQuery(in)),
- FindFields: MC.If(isCache, "title", "detail").(string),
- Order: es.BidSearchSort,
- Fields: fields,
- Start: MC.If(isCache, 0, start).(int),
- Limit: MC.If(isCache, MC.If(in.IsPay, IC.C.DefaultBidInfo.PayCount, IC.C.DefaultBidInfo.Count).(int), int(in.PageSize)).(int),
- Count: MC.If(strings.Contains(in.SelectType, "detail"), 115, 0).(int), //高亮正文数量
- HighLight: MC.If(strings.Contains(in.SelectType, "detail"), true, false).(bool), //是否高亮正文
- }
- var repl *[]map[string]interface{}
- count, repl = biddingSearch.GetAllByNgramWithCount()
- if repl != nil && *repl != nil && len(*repl) > 0 {
- //格式化查询结果
- list = util.SearchListFormat(in.UserId, in.Industry, repl, strings.Contains(in.SelectType, "detail"))
- } else {
- log.Println("查询数据异常")
- }
- log.Println(in.KeyWords, "关键词 -1- 查询耗时:", time.Since(t).Seconds())
- }
- return
- }
|