Skip to content

Commit 0259048

Browse files
committed
range query: Follow latest DSL.
1 parent ff6418b commit 0259048

5 files changed

+42
-50
lines changed

search_aggs_bucket_filter_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestFilterAggregation(t *testing.T) {
2121
t.Fatalf("marshaling to JSON failed: %v", err)
2222
}
2323
got := string(data)
24-
expected := `{"filter":{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}}}`
24+
expected := `{"filter":{"range":{"stock":{"gt":0}}}}`
2525
if got != expected {
2626
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
2727
}
@@ -41,7 +41,7 @@ func TestFilterAggregationWithSubAggregation(t *testing.T) {
4141
t.Fatalf("marshaling to JSON failed: %v", err)
4242
}
4343
got := string(data)
44-
expected := `{"aggregations":{"avg_price":{"avg":{"field":"price"}}},"filter":{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}}}`
44+
expected := `{"aggregations":{"avg_price":{"avg":{"field":"price"}}},"filter":{"range":{"stock":{"gt":0}}}}`
4545
if got != expected {
4646
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
4747
}
@@ -59,7 +59,7 @@ func TestFilterAggregationWithMeta(t *testing.T) {
5959
t.Fatalf("marshaling to JSON failed: %v", err)
6060
}
6161
got := string(data)
62-
expected := `{"filter":{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}},"meta":{"name":"Oliver"}}`
62+
expected := `{"filter":{"range":{"stock":{"gt":0}}},"meta":{"name":"Oliver"}}`
6363
if got != expected {
6464
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
6565
}

search_aggs_bucket_filters_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func TestFiltersAggregationFilters(t *testing.T) {
2222
t.Fatalf("marshaling to JSON failed: %v", err)
2323
}
2424
got := string(data)
25-
expected := `{"filters":{"filters":[{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}},{"term":{"symbol":"GOOG"}}]}}`
25+
expected := `{"filters":{"filters":[{"range":{"stock":{"gt":0}}},{"term":{"symbol":"GOOG"}}]}}`
2626
if got != expected {
2727
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
2828
}
@@ -43,7 +43,7 @@ func TestFiltersAggregationFilterWithName(t *testing.T) {
4343
t.Fatalf("marshaling to JSON failed: %v", err)
4444
}
4545
got := string(data)
46-
expected := `{"filters":{"filters":{"f1":{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}},"f2":{"term":{"symbol":"GOOG"}}}}}`
46+
expected := `{"filters":{"filters":{"f1":{"range":{"stock":{"gt":0}}},"f2":{"term":{"symbol":"GOOG"}}}}}`
4747
if got != expected {
4848
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
4949
}
@@ -73,7 +73,7 @@ func TestFiltersAggregationWithSubAggregation(t *testing.T) {
7373
t.Fatalf("marshaling to JSON failed: %v", err)
7474
}
7575
got := string(data)
76-
expected := `{"aggregations":{"avg_price":{"avg":{"field":"price"}}},"filters":{"filters":[{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}},{"term":{"symbol":"GOOG"}}]}}`
76+
expected := `{"aggregations":{"avg_price":{"avg":{"field":"price"}}},"filters":{"filters":[{"range":{"stock":{"gt":0}}},{"term":{"symbol":"GOOG"}}]}}`
7777
if got != expected {
7878
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
7979
}
@@ -92,7 +92,7 @@ func TestFiltersAggregationWithMetaData(t *testing.T) {
9292
t.Fatalf("marshaling to JSON failed: %v", err)
9393
}
9494
got := string(data)
95-
expected := `{"filters":{"filters":[{"range":{"stock":{"from":0,"include_lower":false,"include_upper":true,"to":null}}},{"term":{"symbol":"GOOG"}}]},"meta":{"name":"Oliver"}}`
95+
expected := `{"filters":{"filters":[{"range":{"stock":{"gt":0}}},{"term":{"symbol":"GOOG"}}]},"meta":{"name":"Oliver"}}`
9696
if got != expected {
9797
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
9898
}

search_queries_bool_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestBoolQuery(t *testing.T) {
2626
t.Fatalf("marshaling to JSON failed: %v", err)
2727
}
2828
got := string(data)
29-
expected := `{"bool":{"_name":"Test","boost":10,"filter":{"term":{"account":"1"}},"must":{"term":{"tag":"wow"}},"must_not":{"range":{"age":{"from":10,"include_lower":true,"include_upper":true,"to":20}}},"should":[{"term":{"tag":"sometag"}},{"term":{"tag":"sometagtag"}}]}}`
29+
expected := `{"bool":{"_name":"Test","boost":10,"filter":{"term":{"account":"1"}},"must":{"term":{"tag":"wow"}},"must_not":{"range":{"age":{"gte":10,"lte":20}}},"should":[{"term":{"tag":"sometag"}},{"term":{"tag":"sometagtag"}}]}}`
3030
if got != expected {
3131
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
3232
}

search_queries_boosting_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func TestBoostingQuery(t *testing.T) {
2323
t.Fatalf("marshaling to JSON failed: %v", err)
2424
}
2525
got := string(data)
26-
expected := `{"boosting":{"negative":{"range":{"age":{"from":10,"include_lower":true,"include_upper":true,"to":20}}},"negative_boost":0.2,"positive":{"term":{"tag":"wow"}}}}`
26+
expected := `{"boosting":{"negative":{"range":{"age":{"gte":10,"lte":20}}},"negative_boost":0.2,"positive":{"term":{"tag":"wow"}}}}`
2727
if got != expected {
2828
t.Errorf("expected\n%s\n,got:\n%s", expected, got)
2929
}

search_queries_range.go

+33-41
Original file line numberDiff line numberDiff line change
@@ -9,80 +9,60 @@ package elastic
99
// For details, see
1010
// https://www.elastic.co/guide/en/elasticsearch/reference/7.0/query-dsl-range-query.html
1111
type RangeQuery struct {
12-
name string
13-
from interface{}
14-
to interface{}
15-
timeZone string
16-
includeLower bool
17-
includeUpper bool
18-
boost *float64
19-
queryName string
20-
format string
21-
relation string
12+
name string
13+
gt interface{}
14+
gte interface{}
15+
lt interface{}
16+
lte interface{}
17+
timeZone string
18+
boost *float64
19+
queryName string
20+
format string
21+
relation string
2222
}
2323

2424
// NewRangeQuery creates and initializes a new RangeQuery.
2525
func NewRangeQuery(name string) *RangeQuery {
26-
return &RangeQuery{name: name, includeLower: true, includeUpper: true}
26+
return &RangeQuery{name: name}
2727
}
2828

2929
// From indicates the from part of the RangeQuery.
3030
// Use nil to indicate an unbounded from part.
3131
func (q *RangeQuery) From(from interface{}) *RangeQuery {
32-
q.from = from
33-
return q
32+
return q.Gte(from)
3433
}
3534

3635
// Gt indicates a greater-than value for the from part.
3736
// Use nil to indicate an unbounded from part.
3837
func (q *RangeQuery) Gt(from interface{}) *RangeQuery {
39-
q.from = from
40-
q.includeLower = false
38+
q.gt = from
4139
return q
4240
}
4341

4442
// Gte indicates a greater-than-or-equal value for the from part.
4543
// Use nil to indicate an unbounded from part.
4644
func (q *RangeQuery) Gte(from interface{}) *RangeQuery {
47-
q.from = from
48-
q.includeLower = true
45+
q.gte = from
4946
return q
5047
}
5148

5249
// To indicates the to part of the RangeQuery.
5350
// Use nil to indicate an unbounded to part.
5451
func (q *RangeQuery) To(to interface{}) *RangeQuery {
55-
q.to = to
56-
return q
52+
return q.Lte(to)
5753
}
5854

5955
// Lt indicates a less-than value for the to part.
6056
// Use nil to indicate an unbounded to part.
6157
func (q *RangeQuery) Lt(to interface{}) *RangeQuery {
62-
q.to = to
63-
q.includeUpper = false
58+
q.lt = to
6459
return q
6560
}
6661

6762
// Lte indicates a less-than-or-equal value for the to part.
6863
// Use nil to indicate an unbounded to part.
6964
func (q *RangeQuery) Lte(to interface{}) *RangeQuery {
70-
q.to = to
71-
q.includeUpper = true
72-
return q
73-
}
74-
75-
// IncludeLower indicates whether the lower bound should be included or not.
76-
// Defaults to true.
77-
func (q *RangeQuery) IncludeLower(includeLower bool) *RangeQuery {
78-
q.includeLower = includeLower
79-
return q
80-
}
81-
82-
// IncludeUpper indicates whether the upper bound should be included or not.
83-
// Defaults to true.
84-
func (q *RangeQuery) IncludeUpper(includeUpper bool) *RangeQuery {
85-
q.includeUpper = includeUpper
65+
q.lte = to
8666
return q
8767
}
8868

@@ -130,8 +110,22 @@ func (q *RangeQuery) Source() (interface{}, error) {
130110
params := make(map[string]interface{})
131111
rangeQ[q.name] = params
132112

133-
params["from"] = q.from
134-
params["to"] = q.to
113+
if nil != q.gt {
114+
params["gt"] = q.gt
115+
}
116+
117+
if nil != q.gte {
118+
params["gte"] = q.gte
119+
}
120+
121+
if nil != q.lt {
122+
params["lt"] = q.lt
123+
}
124+
125+
if nil != q.lte {
126+
params["lte"] = q.lte
127+
}
128+
135129
if q.timeZone != "" {
136130
params["time_zone"] = q.timeZone
137131
}
@@ -144,8 +138,6 @@ func (q *RangeQuery) Source() (interface{}, error) {
144138
if q.boost != nil {
145139
params["boost"] = *q.boost
146140
}
147-
params["include_lower"] = q.includeLower
148-
params["include_upper"] = q.includeUpper
149141

150142
if q.queryName != "" {
151143
rangeQ["_name"] = q.queryName

0 commit comments

Comments
 (0)