[Tests] Check that quoteAnalyzer overrides analyzer in `query_string` query (#26473)
Adding a check to QueryStringQueryBuilderTests that checks the override behaviour of `quote_analyzer`, also adding documentation explaining the use of this parameter in `query_string` query. Closes #25417
This commit is contained in:
parent
1757bd8d92
commit
f8fc0f3ebe
|
@ -45,10 +45,8 @@ import org.apache.lucene.search.spans.SpanQuery;
|
|||
import org.apache.lucene.search.spans.SpanTermQuery;
|
||||
import org.apache.lucene.util.BytesRef;
|
||||
import org.apache.lucene.util.automaton.TooComplexToDeterminizeException;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||
import org.elasticsearch.common.ParsingException;
|
||||
import org.elasticsearch.common.compress.CompressedXContent;
|
||||
import org.elasticsearch.common.lucene.search.MultiPhrasePrefixQuery;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
|
@ -1009,6 +1007,28 @@ public class QueryStringQueryBuilderTests extends AbstractQueryTestCase<QueryStr
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* the quote analyzer should overwrite any other forced analyzer in quoted parts of the query
|
||||
*/
|
||||
public void testQuoteAnalyzer() throws Exception {
|
||||
assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);
|
||||
// Prefix
|
||||
Query query = new QueryStringQueryBuilder("ONE \"TWO THREE\"")
|
||||
.field(STRING_FIELD_NAME)
|
||||
.analyzer("whitespace")
|
||||
.quoteAnalyzer("simple")
|
||||
.toQuery(createShardContext());
|
||||
Query expectedQuery =
|
||||
new BooleanQuery.Builder()
|
||||
.add(new BooleanClause(new TermQuery(new Term(STRING_FIELD_NAME, "ONE")), Occur.SHOULD))
|
||||
.add(new BooleanClause(new PhraseQuery.Builder()
|
||||
.add(new Term(STRING_FIELD_NAME, "two"), 0)
|
||||
.add(new Term(STRING_FIELD_NAME, "three"), 1)
|
||||
.build(), Occur.SHOULD))
|
||||
.build();
|
||||
assertEquals(expectedQuery, query);
|
||||
}
|
||||
|
||||
private static IndexMetaData newIndexMeta(String name, Settings oldIndexSettings, Settings indexSettings) {
|
||||
Settings build = Settings.builder().put(oldIndexSettings)
|
||||
.put(indexSettings)
|
||||
|
|
|
@ -63,6 +63,11 @@ with default operator of `AND`, the same query is translated to
|
|||
|
||||
|`analyzer` |The analyzer name used to analyze the query string.
|
||||
|
||||
|`quote_analyzer` |The name of the analyzer that is used to analyze
|
||||
quoted phrases in the query string. For those parts, it overrides other
|
||||
analyzers that are set using the `analyzer` parameter or the
|
||||
<<search-quote-analyzer,`search_quote_analyzer`>> setting.
|
||||
|
||||
|`allow_leading_wildcard` |When set, `*` or `?` are allowed as the first
|
||||
character. Defaults to `true`.
|
||||
|
||||
|
@ -73,7 +78,7 @@ increments in result queries. Defaults to `true`.
|
|||
expand to. Defaults to `50`
|
||||
|
||||
|`fuzziness` |Set the fuzziness for fuzzy queries. Defaults
|
||||
to `AUTO`. See <<fuzziness>> for allowed settings.
|
||||
to `AUTO`. See <<fuzziness>> for allowed settings.
|
||||
|
||||
|`fuzzy_prefix_length` |Set the prefix length for fuzzy queries. Default
|
||||
is `0`.
|
||||
|
|
Loading…
Reference in New Issue