26
26
import org .elasticsearch .index .query .RangeQueryBuilder ;
27
27
import org .elasticsearch .rest .RestStatus ;
28
28
import org .elasticsearch .search .SearchHit ;
29
+ import org .elasticsearch .search .aggregations .Aggregations ;
30
+ import org .elasticsearch .search .aggregations .bucket .terms .LongTerms ;
31
+ import org .elasticsearch .search .aggregations .bucket .terms .TermsAggregationBuilder ;
32
+ import org .elasticsearch .search .aggregations .support .ValueType ;
29
33
import org .elasticsearch .search .builder .SearchSourceBuilder ;
30
34
import org .elasticsearch .test .ESSingleNodeTestCase ;
31
35
32
36
public class TransportSearchActionSingleNodeTests extends ESSingleNodeTestCase {
33
37
34
38
public void testLocalClusterAlias () {
35
- long nowInMillis = System . currentTimeMillis ( );
39
+ long nowInMillis = randomLongBetween ( 0 , Long . MAX_VALUE );
36
40
IndexRequest indexRequest = new IndexRequest ("test" , "type" , "1" );
37
41
indexRequest .source ("field" , "value" );
38
42
indexRequest .setRefreshPolicy (WriteRequest .RefreshPolicy .WAIT_UNTIL );
39
43
IndexResponse indexResponse = client ().index (indexRequest ).actionGet ();
40
44
assertEquals (RestStatus .CREATED , indexResponse .status ());
41
45
42
46
{
43
- SearchRequest searchRequest = new SearchRequest ("local" , nowInMillis );
47
+ SearchRequest searchRequest = new SearchRequest ("local" , nowInMillis , randomBoolean () );
44
48
SearchResponse searchResponse = client ().search (searchRequest ).actionGet ();
45
49
assertEquals (1 , searchResponse .getHits ().getTotalHits ());
46
50
SearchHit [] hits = searchResponse .getHits ().getHits ();
@@ -51,7 +55,7 @@ public void testLocalClusterAlias() {
51
55
assertEquals ("1" , hit .getId ());
52
56
}
53
57
{
54
- SearchRequest searchRequest = new SearchRequest ("" , nowInMillis );
58
+ SearchRequest searchRequest = new SearchRequest ("" , nowInMillis , randomBoolean () );
55
59
SearchResponse searchResponse = client ().search (searchRequest ).actionGet ();
56
60
assertEquals (1 , searchResponse .getHits ().getTotalHits ());
57
61
SearchHit [] hits = searchResponse .getHits ().getHits ();
@@ -90,19 +94,19 @@ public void testAbsoluteStartMillis() {
90
94
assertEquals (0 , searchResponse .getTotalShards ());
91
95
}
92
96
{
93
- SearchRequest searchRequest = new SearchRequest ("" , 0 );
97
+ SearchRequest searchRequest = new SearchRequest ("" , 0 , randomBoolean () );
94
98
SearchResponse searchResponse = client ().search (searchRequest ).actionGet ();
95
99
assertEquals (2 , searchResponse .getHits ().getTotalHits ());
96
100
}
97
101
{
98
- SearchRequest searchRequest = new SearchRequest ("" , 0 );
102
+ SearchRequest searchRequest = new SearchRequest ("" , 0 , randomBoolean () );
99
103
searchRequest .indices ("<test-{now/d}>" );
100
104
SearchResponse searchResponse = client ().search (searchRequest ).actionGet ();
101
105
assertEquals (1 , searchResponse .getHits ().getTotalHits ());
102
106
assertEquals ("test-1970.01.01" , searchResponse .getHits ().getHits ()[0 ].getIndex ());
103
107
}
104
108
{
105
- SearchRequest searchRequest = new SearchRequest ("" , 0 );
109
+ SearchRequest searchRequest = new SearchRequest ("" , 0 , randomBoolean () );
106
110
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder ();
107
111
RangeQueryBuilder rangeQuery = new RangeQueryBuilder ("date" );
108
112
rangeQuery .gte ("1970-01-01" );
@@ -114,4 +118,46 @@ public void testAbsoluteStartMillis() {
114
118
assertEquals ("test-1970.01.01" , searchResponse .getHits ().getHits ()[0 ].getIndex ());
115
119
}
116
120
}
121
+
122
+ public void testFinalReduce () {
123
+ long nowInMillis = randomLongBetween (0 , Long .MAX_VALUE );
124
+ {
125
+ IndexRequest indexRequest = new IndexRequest ("test" , "type" , "1" );
126
+ indexRequest .source ("price" , 10 );
127
+ IndexResponse indexResponse = client ().index (indexRequest ).actionGet ();
128
+ assertEquals (RestStatus .CREATED , indexResponse .status ());
129
+ }
130
+ {
131
+ IndexRequest indexRequest = new IndexRequest ("test" , "type" , "2" );
132
+ indexRequest .source ("price" , 100 );
133
+ IndexResponse indexResponse = client ().index (indexRequest ).actionGet ();
134
+ assertEquals (RestStatus .CREATED , indexResponse .status ());
135
+ }
136
+ client ().admin ().indices ().prepareRefresh ("test" ).get ();
137
+
138
+ SearchSourceBuilder source = new SearchSourceBuilder ();
139
+ source .size (0 );
140
+ TermsAggregationBuilder terms = new TermsAggregationBuilder ("terms" , ValueType .NUMERIC );
141
+ terms .field ("price" );
142
+ terms .size (1 );
143
+ source .aggregation (terms );
144
+
145
+ {
146
+ SearchRequest searchRequest = randomBoolean () ? new SearchRequest ().source (source )
147
+ : new SearchRequest ("remote" , nowInMillis , true ).source (source );
148
+ SearchResponse searchResponse = client ().search (searchRequest ).actionGet ();
149
+ assertEquals (2 , searchResponse .getHits ().getTotalHits ());
150
+ Aggregations aggregations = searchResponse .getAggregations ();
151
+ LongTerms longTerms = aggregations .get ("terms" );
152
+ assertEquals (1 , longTerms .getBuckets ().size ());
153
+ }
154
+ {
155
+ SearchRequest searchRequest = new SearchRequest ("remote" , nowInMillis , false ).source (source );
156
+ SearchResponse searchResponse = client ().search (searchRequest ).actionGet ();
157
+ assertEquals (2 , searchResponse .getHits ().getTotalHits ());
158
+ Aggregations aggregations = searchResponse .getAggregations ();
159
+ LongTerms longTerms = aggregations .get ("terms" );
160
+ assertEquals (2 , longTerms .getBuckets ().size ());
161
+ }
162
+ }
117
163
}
0 commit comments