@Override protected QueryStringQueryBuilder doCreateTestQueryBuilder() { int numTerms = randomIntBetween(0, 5); String query = ""; for (int i = 0; i < numTerms; i++) { // min length 4 makes sure that the text is not an operator (AND/OR) so toQuery won't break query += (randomBoolean() ? STRING_FIELD_NAME + ":" : "") + randomAsciiOfLengthBetween(4, 10) + " "; } QueryStringQueryBuilder queryStringQueryBuilder = new QueryStringQueryBuilder(query); if (randomBoolean()) { queryStringQueryBuilder.defaultField( randomBoolean() ? STRING_FIELD_NAME : randomAsciiOfLengthBetween(1, 10)); } if (randomBoolean()) { int numFields = randomIntBetween(1, 5); for (int i = 0; i < numFields; i++) { String fieldName = randomBoolean() ? STRING_FIELD_NAME : randomAsciiOfLengthBetween(1, 10); if (randomBoolean()) { queryStringQueryBuilder.field(fieldName); } else { queryStringQueryBuilder.field(fieldName, randomFloat()); } } } if (randomBoolean()) { queryStringQueryBuilder.defaultOperator(randomFrom(Operator.values())); } if (randomBoolean()) { // we only use string fields (either mapped or unmapped) queryStringQueryBuilder.fuzziness(randomFuzziness(STRING_FIELD_NAME)); } if (randomBoolean()) { queryStringQueryBuilder.analyzer(randomAnalyzer()); } if (randomBoolean()) { queryStringQueryBuilder.quoteAnalyzer(randomAnalyzer()); } if (randomBoolean()) { queryStringQueryBuilder.allowLeadingWildcard(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.analyzeWildcard(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.maxDeterminizedStates(randomIntBetween(1, 100)); } if (randomBoolean()) { queryStringQueryBuilder.lowercaseExpandedTerms(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.autoGeneratePhraseQueries(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.enablePositionIncrements(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.lenient(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.escape(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.phraseSlop(randomIntBetween(0, 10)); } if (randomBoolean()) { queryStringQueryBuilder.fuzzyMaxExpansions(randomIntBetween(0, 100)); } if (randomBoolean()) { queryStringQueryBuilder.fuzzyPrefixLength(randomIntBetween(0, 10)); } if (randomBoolean()) { queryStringQueryBuilder.fuzzyRewrite(getRandomRewriteMethod()); } if (randomBoolean()) { queryStringQueryBuilder.rewrite(getRandomRewriteMethod()); } if (randomBoolean()) { queryStringQueryBuilder.quoteFieldSuffix(randomAsciiOfLengthBetween(1, 3)); } if (randomBoolean()) { queryStringQueryBuilder.tieBreaker(randomFloat()); } if (randomBoolean()) { queryStringQueryBuilder.minimumShouldMatch(randomMinimumShouldMatch()); } if (randomBoolean()) { queryStringQueryBuilder.useDisMax(randomBoolean()); } if (randomBoolean()) { queryStringQueryBuilder.locale(randomLocale(getRandom())); } if (randomBoolean()) { queryStringQueryBuilder.timeZone(randomTimeZone()); } return queryStringQueryBuilder; }