File tree Expand file tree Collapse file tree 1 file changed +7
-15
lines changed
x-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper Expand file tree Collapse file tree 1 file changed +7
-15
lines changed Original file line number Diff line number Diff 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 );
You can’t perform that action at this time.
0 commit comments