26
26
import org .elasticsearch .common .Priority ;
27
27
import org .elasticsearch .test .ESIntegTestCase ;
28
28
29
+ import java .util .Collections ;
29
30
import java .util .HashMap ;
30
31
import java .util .Map ;
31
32
import java .util .Set ;
32
33
import java .util .concurrent .ExecutionException ;
33
34
34
35
import static org .elasticsearch .common .util .set .Sets .newHashSet ;
35
- import static org .elasticsearch .index .query .QueryBuilders .matchQuery ;
36
36
import static org .elasticsearch .index .query .QueryBuilders .queryStringQuery ;
37
37
import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .assertHitCount ;
38
38
import static org .hamcrest .Matchers .equalTo ;
39
39
import static org .hamcrest .Matchers .nullValue ;
40
40
41
41
public class AliasResolveRoutingIT extends ESIntegTestCase {
42
42
43
-
44
43
// see https://github.com/elastic/elasticsearch/issues/13278
45
44
public void testSearchClosedWildcardIndex () throws ExecutionException , InterruptedException {
46
45
createIndex ("test-0" );
@@ -52,10 +51,17 @@ public void testSearchClosedWildcardIndex() throws ExecutionException, Interrupt
52
51
client ().prepareIndex ("test-0" , "type1" , "2" ).setSource ("field1" , "quick brown" ),
53
52
client ().prepareIndex ("test-0" , "type1" , "3" ).setSource ("field1" , "quick" ));
54
53
refresh ("test-*" );
55
- assertHitCount (client ().prepareSearch ().setIndices ("alias-*" ).setIndicesOptions (IndicesOptions .lenientExpandOpen ()).setQuery (queryStringQuery ("quick" )).get (), 3L );
54
+ assertHitCount (
55
+ client ()
56
+ .prepareSearch ()
57
+ .setIndices ("alias-*" )
58
+ .setIndicesOptions (IndicesOptions .lenientExpandOpen ())
59
+ .setQuery (queryStringQuery ("quick" ))
60
+ .get (),
61
+ 3L );
56
62
}
57
63
58
- public void testResolveIndexRouting () throws Exception {
64
+ public void testResolveIndexRouting () {
59
65
createIndex ("test1" );
60
66
createIndex ("test2" );
61
67
client ().admin ().cluster ().prepareHealth ().setWaitForEvents (Priority .LANGUID ).setWaitForGreenStatus ().execute ().actionGet ();
@@ -97,9 +103,10 @@ public void testResolveIndexRouting() throws Exception {
97
103
}
98
104
}
99
105
100
- public void testResolveSearchRouting () throws Exception {
106
+ public void testResolveSearchRouting () {
101
107
createIndex ("test1" );
102
108
createIndex ("test2" );
109
+ createIndex ("test3" );
103
110
client ().admin ().cluster ().prepareHealth ().setWaitForEvents (Priority .LANGUID ).setWaitForGreenStatus ().execute ().actionGet ();
104
111
105
112
client ().admin ().indices ().prepareAliases ()
@@ -108,7 +115,10 @@ public void testResolveSearchRouting() throws Exception {
108
115
.addAliasAction (AliasActions .add ().index ("test2" ).alias ("alias20" ).routing ("0" ))
109
116
.addAliasAction (AliasActions .add ().index ("test2" ).alias ("alias21" ).routing ("1" ))
110
117
.addAliasAction (AliasActions .add ().index ("test1" ).alias ("alias0" ).routing ("0" ))
111
- .addAliasAction (AliasActions .add ().index ("test2" ).alias ("alias0" ).routing ("0" )).get ();
118
+ .addAliasAction (AliasActions .add ().index ("test2" ).alias ("alias0" ).routing ("0" ))
119
+ .addAliasAction (AliasActions .add ().index ("test3" ).alias ("alias3tw" ).routing ("tw " ))
120
+ .addAliasAction (AliasActions .add ().index ("test3" ).alias ("alias3ltw" ).routing (" ltw " ))
121
+ .addAliasAction (AliasActions .add ().index ("test3" ).alias ("alias3lw" ).routing (" lw" )).get ();
112
122
113
123
ClusterState state = clusterService ().state ();
114
124
IndexNameExpressionResolver indexNameExpressionResolver = internalCluster ().getInstance (IndexNameExpressionResolver .class );
@@ -118,7 +128,9 @@ public void testResolveSearchRouting() throws Exception {
118
128
assertThat (indexNameExpressionResolver .resolveSearchRouting (state , null , "alias10" ), equalTo (newMap ("test1" , newSet ("0" ))));
119
129
assertThat (indexNameExpressionResolver .resolveSearchRouting (state , "0" , "alias10" ), equalTo (newMap ("test1" , newSet ("0" ))));
120
130
assertThat (indexNameExpressionResolver .resolveSearchRouting (state , "1" , "alias10" ), nullValue ());
121
- assertThat (indexNameExpressionResolver .resolveSearchRouting (state , null , "alias0" ), equalTo (newMap ("test1" , newSet ("0" ), "test2" , newSet ("0" ))));
131
+ assertThat (
132
+ indexNameExpressionResolver .resolveSearchRouting (state , null , "alias0" ),
133
+ equalTo (newMap ("test1" , newSet ("0" ), "test2" , newSet ("0" ))));
122
134
123
135
assertThat (indexNameExpressionResolver .resolveSearchRouting (state , null , new String []{"alias10" , "alias20" }),
124
136
equalTo (newMap ("test1" , newSet ("0" ), "test2" , newSet ("0" ))));
@@ -143,13 +155,42 @@ public void testResolveSearchRouting() throws Exception {
143
155
equalTo (newMap ("test1" , newSet ("0" ), "test2" , newSet ("1" ))));
144
156
assertThat (indexNameExpressionResolver .resolveSearchRouting (state , "0,1,2" , new String []{"test1" , "alias10" , "alias21" }),
145
157
equalTo (newMap ("test1" , newSet ("0" , "1" , "2" ), "test2" , newSet ("1" ))));
158
+
159
+ assertThat (
160
+ indexNameExpressionResolver .resolveSearchRouting (state , "tw , ltw , lw" , "test1" ),
161
+ equalTo (newMap ("test1" , newSet ("tw " , " ltw " , " lw" ))));
162
+ assertThat (
163
+ indexNameExpressionResolver .resolveSearchRouting (state , "tw , ltw , lw" , "alias3tw" ),
164
+ equalTo (newMap ("test3" , newSet ("tw " ))));
165
+ assertThat (
166
+ indexNameExpressionResolver .resolveSearchRouting (state , "tw , ltw , lw" , "alias3ltw" ),
167
+ equalTo (newMap ("test3" , newSet (" ltw " ))));
168
+ assertThat (
169
+ indexNameExpressionResolver .resolveSearchRouting (state , "tw , ltw , lw" , "alias3lw" ),
170
+ equalTo (newMap ("test3" , newSet (" lw" ))));
171
+ assertThat (
172
+ indexNameExpressionResolver .resolveSearchRouting (state , "0,tw , ltw , lw" , "test1" , "alias3ltw" ),
173
+ equalTo (newMap ("test1" , newSet ("0" , "tw " , " ltw " , " lw" ), "test3" , newSet (" ltw " ))));
174
+
175
+ assertThat (
176
+ indexNameExpressionResolver .resolveSearchRouting (state , "0,1,2,tw , ltw , lw" , (String [])null ),
177
+ equalTo (newMap (
178
+ "test1" , newSet ("0" , "1" , "2" , "tw " , " ltw " , " lw" ),
179
+ "test2" , newSet ("0" , "1" , "2" , "tw " , " ltw " , " lw" ),
180
+ "test3" , newSet ("0" , "1" , "2" , "tw " , " ltw " , " lw" ))));
181
+
182
+ assertThat (
183
+ indexNameExpressionResolver .resolveSearchRoutingAllIndices (state .metaData (), "0,1,2,tw , ltw , lw" ),
184
+ equalTo (newMap (
185
+ "test1" , newSet ("0" , "1" , "2" , "tw " , " ltw " , " lw" ),
186
+ "test2" , newSet ("0" , "1" , "2" , "tw " , " ltw " , " lw" ),
187
+ "test3" , newSet ("0" , "1" , "2" , "tw " , " ltw " , " lw" ))));
146
188
}
147
189
148
190
private <T > Set <T > newSet (T ... elements ) {
149
191
return newHashSet (elements );
150
192
}
151
193
152
-
153
194
private <K , V > Map <K , V > newMap (K key , V value ) {
154
195
Map <K , V > r = new HashMap <>();
155
196
r .put (key , value );
@@ -163,4 +204,12 @@ private <K, V> Map<K, V> newMap(K key1, V value1, K key2, V value2) {
163
204
return r ;
164
205
}
165
206
207
+ private <K , V > Map <K , V > newMap (K key1 , V value1 , K key2 , V value2 , K key3 , V value3 ) {
208
+ Map <K , V > r = new HashMap <>();
209
+ r .put (key1 , value1 );
210
+ r .put (key2 , value2 );
211
+ r .put (key3 , value3 );
212
+ return r ;
213
+ }
214
+
166
215
}
0 commit comments