@@ -135,6 +135,7 @@ public static synchronized void addDynamicSettings(String... settings) {
135
135
private final transient int totalNumberOfShards ;
136
136
137
137
private final String [] allIndices ;
138
+ private final ImmutableSet <String > allIndicesSet ;
138
139
private final String [] allOpenIndices ;
139
140
140
141
private final ImmutableMap <String , ImmutableMap <String , AliasMetaData >> aliases ;
@@ -166,6 +167,7 @@ public static synchronized void addDynamicSettings(String... settings) {
166
167
allIndicesLst .add (indexMetaData .index ());
167
168
}
168
169
allIndices = allIndicesLst .toArray (new String [allIndicesLst .size ()]);
170
+ allIndicesSet = ImmutableSet .copyOf (allIndices );
169
171
170
172
List <String > allOpenIndices = Lists .newArrayList ();
171
173
for (IndexMetaData indexMetaData : indices .values ()) {
@@ -294,6 +296,10 @@ public String[] concreteAllIndices() {
294
296
return allIndices ;
295
297
}
296
298
299
+ public ImmutableSet <String > concreteAllIndicesAsSet () {
300
+ return allIndicesSet ;
301
+ }
302
+
297
303
public String [] getConcreteAllIndices () {
298
304
return concreteAllIndices ();
299
305
}
@@ -508,7 +514,7 @@ public String[] concreteIndices(String[] aliasesOrIndices, boolean ignoreMissing
508
514
if (aliasesOrIndices == null || aliasesOrIndices .length == 0 ) {
509
515
return allOnlyOpen ? concreteAllOpenIndices () : concreteAllIndices ();
510
516
}
511
- aliasesOrIndices = convertFromWildcards (aliasesOrIndices , allOnlyOpen , false );
517
+ aliasesOrIndices = convertFromWildcards (aliasesOrIndices , allOnlyOpen , ignoreMissing );
512
518
// optimize for single element index (common case)
513
519
if (aliasesOrIndices .length == 1 ) {
514
520
String aliasOrIndex = aliasesOrIndices [0 ];
@@ -602,6 +608,9 @@ public String[] convertFromWildcards(String[] aliasesOrIndices, boolean wildcard
602
608
aliasOrIndex = aliasOrIndex .substring (1 );
603
609
}
604
610
if (!Regex .isSimpleMatchPattern (aliasOrIndex )) {
611
+ if (!ignoreMissing && !aliasAndIndexToIndexMap .containsKey (aliasOrIndex )) {
612
+ throw new IndexMissingException (new Index (aliasOrIndex ));
613
+ }
605
614
if (result != null ) {
606
615
if (add ) {
607
616
result .add (aliasOrIndex );
0 commit comments