浏览代码

首页搜索es修改

WH01243 1 年之前
父节点
当前提交
92e2e563e5
共有 3 个文件被更改,包括 26 次插入5 次删除
  1. 18 2
      src/jfw/front/searchOptimize.go
  2. 5 1
      src/jfw/front/supsearch.go
  3. 3 2
      src/jfw/front/swordfish.go

+ 18 - 2
src/jfw/front/searchOptimize.go

@@ -87,10 +87,11 @@ type SearchOptimize struct {
 	EntStatus           int           `json:"entStatus"`
 	HeightKeys          string        `json:"heightKeys"` //需要高亮的关键词
 	R                   *http.Request `json:"r"`          //http.request
+	District            string        `json:"district"`   //需要高亮的关键词
 }
 
 // NewSearchOptimize  初始化
-func NewSearchOptimize(userId, phone, province, city, subtype, topType, publishTime, selectType, price, industry, buyerClass, buyerTel, winnerTel, fileExists, keyWords, additionalWords, exclusionWords, platform, territorialization string, pageNum, pageSize, searchGroup, searchMode, wordsMode int, userInfo jy.VipState, searchTypeSwitch bool, r *http.Request) *SearchOptimize {
+func NewSearchOptimize(userId, phone, province, city, district, subtype, topType, publishTime, selectType, price, industry, buyerClass, buyerTel, winnerTel, fileExists, keyWords, additionalWords, exclusionWords, platform, territorialization string, pageNum, pageSize, searchGroup, searchMode, wordsMode int, userInfo jy.VipState, searchTypeSwitch bool, r *http.Request) *SearchOptimize {
 	var so = &SearchOptimize{
 		AppId:            "10000",
 		UserId:           userId,
@@ -124,6 +125,7 @@ func NewSearchOptimize(userId, phone, province, city, subtype, topType, publishT
 		BigMemberStatus:  userInfo.BigMember,
 		EntStatus:        userInfo.EntMember,
 		R:                r,
+		District:         district,
 	}
 	so.SearchParamsHandle()
 	return so
@@ -579,7 +581,7 @@ func (so *SearchOptimize) GetBidSearchQuery() string {
 		}
 		query += `]}}`
 	}
-	//
+	//
 	city := so.City
 	if city != "" && isLogin {
 		if len(query) > 0 {
@@ -594,6 +596,20 @@ func (so *SearchOptimize) GetBidSearchQuery() string {
 		}
 		query += `]}}`
 	}
+	//区域处理
+	district := so.District
+	if district != "" && isLogin {
+		for k, v := range strings.Split(district, ",") {
+			if k > 0 {
+				query += `,`
+			}
+			cityName := strings.Split(v, "_")[0]
+			districtName := strings.Split(v, "_")[1]
+			query_bool_must_and_district := `{"bool":{"must":[{"terms":{"city":["%s"]}},{"terms":{"district":["%s"]}}]}}`
+			query += fmt.Sprintf(query_bool_must_and_district, cityName, districtName)
+		}
+
+	}
 	if query != "" {
 		query = fmt.Sprintf(queryBoolShould, query)
 	}

+ 5 - 1
src/jfw/front/supsearch.go

@@ -394,6 +394,7 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 		buyerclass                = ""     //采购单位类别
 		notkey                    = ""     //排除词
 		city                      = ""     //城市 付费用户可用
+		district                  = ""
 	)
 	// 领域化标识
 	territorialization := p.GetString("bid_field")
@@ -413,6 +414,7 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 		hasBuyerTel, hasWinnerTel = p.GetString("buyertel"), p.GetString("winnertel")
 		notkey = p.GetString("notkey")
 		city = p.GetString("city") //城市 付费用户可用
+		district = p.GetString("district")
 	}
 	//历史导出数据回显
 	if strings.Contains(p.Url(), "?goback") {
@@ -454,6 +456,7 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 		notkey = util.ObjToString(sessVal["Echo_notkey"])
 		fileExists = util.ObjToString(sessVal["Echo_fileExists"])
 		city = util.ObjToString(sessVal["Echo_city"])
+		district = util.ObjToString(sessVal["district"])
 		bidField = util.ObjToString(sessVal["Echo_bid_field"])              // 领域化数据 0101-医疗行业
 		territorialization = util.ObjToString(sessVal["Echo_bid_field"])    // 领域化数据 0101-医疗行业
 		searchGroup = util.IntAll(sessVal["Echo_searchGroup"])              //搜索分组;默认0:全部;1:招标采购搜索;2:超前项目。
@@ -503,7 +506,7 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 	isLimit := 1
 	if isSearch {
 		searchTypeSwitch, _ := config.Sysconfig["searchTypeSwitch"].(bool)
-		so := NewSearchOptimize(userId, phone, area, city, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, 0, pageSize, searchGroup, searchMode, wordsMode, *userInfo, searchTypeSwitch, p.Request)
+		so := NewSearchOptimize(userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, 0, pageSize, searchGroup, searchMode, wordsMode, *userInfo, searchTypeSwitch, p.Request)
 		heightKeys = so.HeightKeys //主关键词和附加词合并,多组空格隔开,作为前端渲染高亮关键词使用
 		//关键词  行业 附加词
 		//放开用户不输入关键词可搜索 --P297需求
@@ -548,6 +551,7 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 	p.T["notkey"] = notkey
 	p.T["fileExists"] = fileExists
 	p.T["city"] = city
+	p.T["district"] = district
 	p.T["bid_field"] = territorialization
 	p.SetSession("paramkey", b_word)
 	switch publishtime {

+ 3 - 2
src/jfw/front/swordfish.go

@@ -107,6 +107,7 @@ func (m *Front) PcAjaxReq() {
 	}
 
 	area := m.GetString("area")
+	district := m.GetString("district")
 	subtype := m.GetString("subtype")
 	toptype := m.GetString("toptype") //信息类型
 	publishtime := m.GetString("publishtime")
@@ -204,7 +205,7 @@ func (m *Front) PcAjaxReq() {
 		}
 		if isLimit == 1 {
 			searchTypeSwitch, _ := config.Sysconfig["searchTypeSwitch"].(bool)
-			so := NewSearchOptimize(userId, phone, area, city, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, currentPage, pageSize, searchGroup, searchMode, wordsMode, *userInfo, searchTypeSwitch, m.Request)
+			so := NewSearchOptimize(userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, currentPage, pageSize, searchGroup, searchMode, wordsMode, *userInfo, searchTypeSwitch, m.Request)
 			if so.PageNum < 0 && so.PageSize < 0 {
 				log.Printf("查询参数超出范围,有可能是异常请求; 用户id:%s;用户手机号:%s \n", userId, phone)
 			} else {
@@ -215,7 +216,7 @@ func (m *Front) PcAjaxReq() {
 		}
 	} else {
 		searchTypeSwitch, _ := config.Sysconfig["searchTypeSwitch"].(bool)
-		so := NewSearchOptimize(userId, phone, area, city, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, currentPage, pageSize, searchGroup, searchMode, wordsMode, *userInfo, searchTypeSwitch, m.Request)
+		so := NewSearchOptimize(userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, currentPage, pageSize, searchGroup, searchMode, wordsMode, *userInfo, searchTypeSwitch, m.Request)
 		list, count, total = so.GetBidSearchListByCache()
 
 	}