xuzhiheng 4 年之前
父节点
当前提交
1e26e17be7
共有 2 个文件被更改,包括 25 次插入1 次删除
  1. 24 0
      service/projects.go
  2. 1 1
      test/project/project_test.go

+ 24 - 0
service/projects.go

@@ -17,6 +17,7 @@ var (
 	query        = `{"query": {"bool": {"must":[%s],"should":[%s],"minimum_should_match": 1}}}`
 	query_string = `{"constant_score": {"boost": 2,"query": {"match_phrase": {"projectname.pname": {"analyzer": "my_ngram","query": "%s","slop": 6}}}}},{"multi_match": {"query": "%s","fields": ["projectname.pname"],"analyzer": "ik","minimum_should_match": "100%%"}}`
 	query_winner = `{"term": {"s_winner": "%s"}}`
+	query_time   = `{"range": {"firsttime": {%s}}}`
 	SR           = strings.Replace
 	HL           = `"highlight": {"pre_tags": [""],"post_tags": [""],"fields": {%s}}`
 	highlightStr = `%s: {"fragment_size": %d,"number_of_fragments": 1}`
@@ -26,16 +27,39 @@ func ProjectListData(projectName, winner, time string) (data *map[string]interfa
 	global.Logger.Info("projectName " + projectName)
 	global.Logger.Info("winner " + winner)
 	global.Logger.Info("time " + time)
+	time = strings.TrimSpace(time)
+	winner = strings.TrimSpace(winner)
 	pjt_name := strings.TrimSpace(projectName)
 	pjt_len := len([]rune(pjt_name))
 	data = &map[string]interface{}{}
 	qstr := ""
+	timestr := ""
+	if time != "" {
+		start := strings.Split(time, "_")[0]
+		end := strings.Split(time, "_")[1]
+		if start == "" && end != "" {
+			timestr = `{"range": {"firsttime": {"lte": ` + end + `}}}`
+		} else if start != "" && end == "" {
+			timestr = `{"range": {"firsttime": {"gte": ` + start + `}}}`
+		} else if start != "" && end != "" {
+			timestr = `{"range": {"firsttime": {"gte": ` + start + `,"lte": ` + end + `}}}`
+		}
+	}
 	if pjt_len >= 4 && winner == "" {
 		qstr = fmt.Sprintf(query, "", fmt.Sprintf(query_string, pjt_name, pjt_name))
+		if timestr != "" {
+			qstr = fmt.Sprintf(query, timestr, fmt.Sprintf(query_string, pjt_name, pjt_name))
+		}
 	} else if pjt_len >= 4 && winner != "" {
 		qstr = fmt.Sprintf(query, fmt.Sprintf(query_winner, winner), fmt.Sprintf(query_string, pjt_name, pjt_name))
+		if timestr != "" {
+			qstr = fmt.Sprintf(query, fmt.Sprintf(query_winner, winner)+","+timestr, fmt.Sprintf(query_string, pjt_name, pjt_name))
+		}
 	} else if winner != "" {
 		qstr = fmt.Sprintf(query, fmt.Sprintf(query_winner, winner), "")
+		if timestr != "" {
+			qstr = fmt.Sprintf(query, fmt.Sprintf(query_winner, winner)+","+timestr, "")
+		}
 	} else {
 		return
 	}

+ 1 - 1
test/project/project_test.go

@@ -21,7 +21,7 @@ func getData() {
 	data := post(apiurl, map[string]string{
 		"name":   "河南大学",
 		"winner": "洛阳丹尼斯量贩有限公司",
-		"time":   "",
+		"time":   "1545235200_1599014733",
 	})
 	log.Println(data)
 }