浏览代码

Merge branch 'dev/v4.8.43_dx' of qmx/jy into feature/v4.8.43

duxin 2 年之前
父节点
当前提交
dce8fd25f7

+ 10 - 4
src/jfw/modules/bigmember/src/entity/marketAnalysis/commonSearch.go

@@ -7,7 +7,6 @@ import (
 )
 )
 
 
 const (
 const (
-	localMultiMatch     = `{"multi_match": {"query": %s,"type": "phrase", "fields": ["purchasing","projectname.pname"]}}`
 	query_bool_must_and = `{"bool": {"must": [%s]%s}}`
 	query_bool_must_and = `{"bool": {"must": [%s]%s}}`
 	PSearch_DecMust     = `"bidstatus": ["中标","成交","合同","单一"]`
 	PSearch_DecMust     = `"bidstatus": ["中标","成交","合同","单一"]`
 	query_bool_must     = `{"terms": {%s}}`
 	query_bool_must     = `{"terms": {%s}}`
@@ -41,7 +40,7 @@ func (mae *MarketAnalysisEntity) GetCommonQuerySql() string {
 	musts = append(musts, fmt.Sprintf(query_bool_must, PSearch_DecMust))
 	musts = append(musts, fmt.Sprintf(query_bool_must, PSearch_DecMust))
 	//订阅词
 	//订阅词
 	for _, v := range getAllKeywordArr(mae.FormatParam.KeysItems) {
 	for _, v := range getAllKeywordArr(mae.FormatParam.KeysItems) {
-		if sql := getKeyWordSql(v); sql != "" {
+		if sql := getKeyWordSql(v, mae.BaseParam.MatchingMode); sql != "" {
 			bools = append(bools, sql)
 			bools = append(bools, sql)
 		}
 		}
 	}
 	}
@@ -92,8 +91,15 @@ func getAllKeywordArr(res []keyWordGroup) (rData []viewKeyWord) {
 	return
 	return
 }
 }
 
 
-func getKeyWordSql(v viewKeyWord) string {
-	var shoulds, must_not []string
+func getKeyWordSql(v viewKeyWord, matchingMode string) string {
+	var (
+		shoulds, must_not []string
+		//默认查询项目名称与标的物
+		localMultiMatch = `{"multi_match": {"query": %s,"type": "phrase", "fields": ["purchasing","projectname.pname"]}}`
+	)
+	if matchingMode == "title" { //只匹配项目名称
+		localMultiMatch = `{"multi_match": {"query": %s,"type": "phrase", "fields": ["projectname.pname"]}}`
+	}
 	//附加词
 	//附加词
 	for _, vv := range v.Keyword {
 	for _, vv := range v.Keyword {
 		vv = strings.TrimSpace(vv)
 		vv = strings.TrimSpace(vv)

+ 4 - 0
src/jfw/modules/bigmember/src/entity/marketAnalysis/marketAnalysisEntity.go

@@ -53,6 +53,7 @@ type AnalysisRequestParam struct {
 	PageSize       int    //默认每页10条
 	PageSize       int    //默认每页10条
 	PageNum        int    //默认当前第一页
 	PageNum        int    //默认当前第一页
 	IsDetail       bool   //是否是项目明细请求
 	IsDetail       bool   //是否是项目明细请求
+	MatchingMode   string //匹配方式 title:标题 content:项目名称/标的物
 }
 }
 
 
 type viewKeyWord struct {
 type viewKeyWord struct {
@@ -239,6 +240,7 @@ func (mae *MarketAnalysisEntity) SaveAnalysisRecord() error {
 		"s_area":           mae.BaseParam.Area,
 		"s_area":           mae.BaseParam.Area,
 		"s_industry":       mae.BaseParam.Industry,
 		"s_industry":       mae.BaseParam.Industry,
 		"s_buyerClass":     mae.BaseParam.BuyerClass,
 		"s_buyerClass":     mae.BaseParam.BuyerClass,
+		"s_matchingMode":   mae.BaseParam.MatchingMode,
 		"s_userId":         mae.UId,
 		"s_userId":         mae.UId,
 		"s_parentId":       mae.Pid,
 		"s_parentId":       mae.Pid,
 		"l_createTime":     time.Now().Unix(),
 		"l_createTime":     time.Now().Unix(),
@@ -273,6 +275,7 @@ func (mae *MarketAnalysisEntity) GetAnalysisFromMgoDb() error {
 	mae.BaseParam.Area, _ = (*res)["s_area"].(string)
 	mae.BaseParam.Area, _ = (*res)["s_area"].(string)
 	mae.BaseParam.Industry, _ = (*res)["s_industry"].(string)
 	mae.BaseParam.Industry, _ = (*res)["s_industry"].(string)
 	mae.BaseParam.BuyerClass, _ = (*res)["s_buyerClass"].(string)
 	mae.BaseParam.BuyerClass, _ = (*res)["s_buyerClass"].(string)
+	mae.BaseParam.MatchingMode, _ = (*res)["s_matchingMode"].(string)
 	return nil
 	return nil
 }
 }
 
 
@@ -324,6 +327,7 @@ func (mae *MarketAnalysisEntity) GetRecordList(pageNum, PageSize int) (total int
 			"rangeTime":        qutil.ObjToString(row["s_rangeTime"]),
 			"rangeTime":        qutil.ObjToString(row["s_rangeTime"]),
 			"s_rangeTimeExtra": qutil.ObjToString(row["s_rangeTimeExtra"]),
 			"s_rangeTimeExtra": qutil.ObjToString(row["s_rangeTimeExtra"]),
 			"createTime":       qutil.Int64All(row["l_createTime"]),
 			"createTime":       qutil.Int64All(row["l_createTime"]),
+			"matchingMode":     qutil.ObjToString(row["s_matchingMode"]), //项目匹配方式
 		})
 		})
 	}
 	}
 	return
 	return

+ 1 - 1
src/jfw/modules/bigmember/src/entity/marketAnalysis/scaleRefineQuery.go

@@ -89,7 +89,7 @@ func (mae *MarketAnalysisEntity) marketScaleRefineQuery() (rMap map[string]inter
 	for _, group := range mae.FormatParam.KeysItems {
 	for _, group := range mae.FormatParam.KeysItems {
 		var bools []string
 		var bools []string
 		for _, v := range getGroupKeywordArr(group.A_Key) {
 		for _, v := range getGroupKeywordArr(group.A_Key) {
-			if sql := getKeyWordSql(v); sql != "" {
+			if sql := getKeyWordSql(v, mae.BaseParam.MatchingMode); sql != "" {
 				bools = append(bools, sql)
 				bools = append(bools, sql)
 			}
 			}
 		}
 		}

+ 2 - 0
src/jfw/modules/bigmember/src/service/report/marketAnalysis.go

@@ -53,6 +53,7 @@ func (this *MarketAnalysis) ProjectInfo() {
 			BuyerClass:     this.GetString("buyerclass"),     //采购单位类型【字符串】多个采购单位类型用逗号拼接
 			BuyerClass:     this.GetString("buyerclass"),     //采购单位类型【字符串】多个采购单位类型用逗号拼接
 			Buyer:          this.GetString("buyer"),          //采购单位
 			Buyer:          this.GetString("buyer"),          //采购单位
 			Winner:         this.GetString("winner"),         //中标单位
 			Winner:         this.GetString("winner"),         //中标单位
+			MatchingMode:   this.GetString("matchingMode"),   //匹配方式
 			Sort:           sort,                             //排序
 			Sort:           sort,                             //排序
 			PageSize:       pageSize,                         //每页数据量
 			PageSize:       pageSize,                         //每页数据量
 			PageNum:        pageNum,                          //当前页码
 			PageNum:        pageNum,                          //当前页码
@@ -123,6 +124,7 @@ func (this *MarketAnalysis) DoAnalysis() {
 			Area:           this.GetString("area"),           //省份【字符串】多个省份用逗号拼接
 			Area:           this.GetString("area"),           //省份【字符串】多个省份用逗号拼接
 			Industry:       this.GetString("industry"),       //行业【字符串】多个行业用逗号拼接
 			Industry:       this.GetString("industry"),       //行业【字符串】多个行业用逗号拼接
 			BuyerClass:     this.GetString("buyerclass"),     //采购单位类型【字符串】多个采购单位类型用逗号拼接
 			BuyerClass:     this.GetString("buyerclass"),     //采购单位类型【字符串】多个采购单位类型用逗号拼接
+			MatchingMode:   this.GetString("matchingMode"),   //匹配方式
 		}
 		}
 		mae := &marketAnalysis.MarketAnalysisEntity{BaseParam: bParam, UId: userId, Pid: pid}
 		mae := &marketAnalysis.MarketAnalysisEntity{BaseParam: bParam, UId: userId, Pid: pid}
 		if err := mae.ForMatData(); err != nil {
 		if err := mae.ForMatData(); err != nil {