|
@@ -914,8 +914,8 @@ const (
|
|
|
HL = `"highlight": {"pre_tags": [""],"post_tags": [""],"fields": {%s}}`
|
|
|
highlightStr = `%s: {"fragment_size": %d,"number_of_fragments": 1}`
|
|
|
|
|
|
- FilterQuery_New = `{"query":{"bool":{"must": [%s%s],"should":[%s]}}}`
|
|
|
- FiledQueryString = `{"query_string": {"default_field": %s,"query": "%s"}}`
|
|
|
+ FilterQuery_New = `{"query":{"bool":{"must": [%s],"should":[%s%s]}}}`
|
|
|
+ MatchQueryString = `{"match": {%s: { "query":"%s", "operator": "and"}}}`
|
|
|
)
|
|
|
|
|
|
func GetNgramQuery(query interface{}, mustquery, findfields string) (qstr string) {
|
|
@@ -977,32 +977,32 @@ func GetNgramQuery_New(querystring, querymust interface{}, must, findfields stri
|
|
|
|
|
|
//querystring---------------------------------------------
|
|
|
query_string := ""
|
|
|
- var querysMust []string
|
|
|
+ var querysShold []string
|
|
|
if q, ok := querystring.(string); ok {
|
|
|
if q != "" {
|
|
|
- querysMust = strings.Split(q, ",")
|
|
|
+ querysShold = strings.Split(q, ",")
|
|
|
}
|
|
|
} else if q, ok := querystring.([]string); ok {
|
|
|
- querysMust = q
|
|
|
+ querysShold = q
|
|
|
} else if q, ok := querystring.([]interface{}); ok {
|
|
|
- querysMust = util.ObjArrToStringArr(q)
|
|
|
+ querysShold = util.ObjArrToStringArr(q)
|
|
|
}
|
|
|
- if querysMust != nil {
|
|
|
+ if querysShold != nil {
|
|
|
for k, name := range strings.Split(findfields, ",") {
|
|
|
- for _, qs_querysMust := range querysMust {
|
|
|
+ for _, qs_querysShold := range querysShold {
|
|
|
if k > 0 {
|
|
|
- query_string = query_string + "," + fmt.Sprintf(FiledQueryString, fmt.Sprint(name), qs_querysMust)
|
|
|
+ query_string = query_string + "," + fmt.Sprintf(MatchQueryString, fmt.Sprint(name), qs_querysShold)
|
|
|
} else {
|
|
|
- query_string = query_string + fmt.Sprintf(FiledQueryString, fmt.Sprint(name), qs_querysMust)
|
|
|
+ query_string = query_string + fmt.Sprintf(MatchQueryString, fmt.Sprint(name), qs_querysShold)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//log.Println("querystring", query_string)
|
|
|
- if must == "" {
|
|
|
- qstring = fmt.Sprintf(FilterQuery_New, query_string, must, querymust_string)
|
|
|
+ if querymust_string == "" {
|
|
|
+ qstring = fmt.Sprintf(FilterQuery_New, must, query_string, querymust_string)
|
|
|
} else {
|
|
|
- qstring = fmt.Sprintf(FilterQuery_New, query_string, ","+must, querymust_string)
|
|
|
+ qstring = fmt.Sprintf(FilterQuery_New, must, query_string, ","+querymust_string)
|
|
|
}
|
|
|
return
|
|
|
}
|