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