Skip to content

Commit a958631

Browse files
committed
iter
1 parent c8e4834 commit a958631

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -500,24 +500,16 @@ private static Query createConcatenationQuery(RegExp r) {
500500

501501
private static Query createCharacterClassQuery(RegExp r) {
502502
List<Query> queries = new ArrayList<>();
503+
int maxClauseCount = 0;
503504
for (int i = 0; i < r.from.length; i++) {
504-
if (r.from[i] == r.to[i]) {
505-
String cs = Character.toString(r.from[i]);
505+
maxClauseCount += r.to[i] - r.from[i];
506+
if (maxClauseCount > MAX_CLAUSES_IN_APPROXIMATION_QUERY) {
507+
return new MatchAllDocsQuery();
508+
}
509+
for (int j = r.from[i]; j <= r.to[i]; j++) {
510+
String cs = Character.toString(j);
506511
String normalizedChar = toLowerCase(cs);
507512
queries.add(new TermQuery(new Term("", normalizedChar)));
508-
} else {
509-
for (int j = r.from[i]; j <= r.to[i]; j++) {
510-
String cs = Character.toString(j);
511-
String normalizedChar = toLowerCase(cs);
512-
queries.add(new TermQuery(new Term("", normalizedChar)));
513-
if (queries.size() > MAX_CLAUSES_IN_APPROXIMATION_QUERY) {
514-
break;
515-
}
516-
}
517-
queries.add(new MatchAllDocsQuery());
518-
}
519-
if (queries.size() > MAX_CLAUSES_IN_APPROXIMATION_QUERY) {
520-
break;
521513
}
522514
}
523515
return formQuery(queries);

0 commit comments

Comments
 (0)