Skip to content

Commit 8348070

Browse files
author
Christoph Büscher
committed
[Tests] Fix edge case in SimpleQueryStringBuilderTests (#36611)
A previous fix of a similar problem in #35201 wasn't general enough, we also need to catch cases where the randomly generated query string starts with some version of "now" and hits a date field. Closes #36595
1 parent c37fbca commit 8348070

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

server/src/test/java/org/elasticsearch/index/query/SimpleQueryStringBuilderTests.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ public class SimpleQueryStringBuilderTests extends AbstractQueryTestCase<SimpleQ
6868

6969
@Override
7070
protected SimpleQueryStringBuilder doCreateTestQueryBuilder() {
71-
SimpleQueryStringBuilder result = new SimpleQueryStringBuilder(randomAlphaOfLengthBetween(1, 10));
71+
String queryText = randomAlphaOfLengthBetween(1, 10);
72+
SimpleQueryStringBuilder result = new SimpleQueryStringBuilder(queryText);
7273
if (randomBoolean()) {
7374
result.analyzeWildcard(randomBoolean());
7475
}
@@ -105,6 +106,11 @@ protected SimpleQueryStringBuilder doCreateTestQueryBuilder() {
105106
fields.put(STRING_FIELD_NAME_2, 2.0f / randomIntBetween(1, 20));
106107
}
107108
}
109+
// special handling if query start with "now" and no field specified. This hits the "mapped_date" field which leads to the query not
110+
// being cacheable and trigger later test failures (see https://github.com/elastic/elasticsearch/issues/35183)
111+
if (fieldCount == 0 && queryText.length() >= 3 && queryText.substring(0,3).equalsIgnoreCase("now")) {
112+
fields.put(STRING_FIELD_NAME_2, 2.0f / randomIntBetween(1, 20));
113+
}
108114
result.fields(fields);
109115
if (randomBoolean()) {
110116
result.autoGenerateSynonymsPhraseQuery(randomBoolean());

0 commit comments

Comments
 (0)