|
@@ -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
|
|
|
}
|