Closed
Description
Elasticsearch version (bin/elasticsearch --version
):
7.9.2
Plugins installed: []
Description of the problem including expected versus actual behavior:
Text fields that activate index_prefixes
or index_phrases
break exists
query that targets
the parent object. So currently if a field foo.bar
is defined as a text field with index_prefixes
option,
any exists
query on foo
throws an UOE
:
org.elasticsearch.index.mapper.TextFieldMapper$PrefixFieldType.existsQuery(TextFieldMapper.java:488)
at org.elasticsearch.index.query.ExistsQueryBuilder.newObjectFieldExistsQuery(ExistsQueryBuilder.java:214)
at org.elasticsearch.index.query.ExistsQueryBuilder.newFieldExistsQuery(ExistsQueryBuilder.java:202)
at org.elasticsearch.index.query.ExistsQueryBuilder.newFilter(ExistsQueryBuilder.java:164)
at org.elasticsearch.index.search.QueryStringQueryParser.existsQuery(QueryStringQueryParser.java:636)
at org.elasticsearch.index.search.QueryStringQueryParser.getWildcardQuery(QueryStringQueryParser.java:647)
Steps to reproduce:
PUT test
{
"mappings": {
"properties": {
"foo": {
"properties": {
"bar": {
"type": "text",
"index_prefixes": {}
}
}
}
}
}
}
POST test/_doc
{
"foo.bar": "1"
}
POST test/_search?q=foo:*
Relates #63446