Skip to content

Exists query fail on text field with sub-fields option #64585

Closed
@jimczi

Description

@jimczi

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

Metadata

Metadata

Assignees

Labels

:Search Foundations/MappingIndex mappings, including merging and defining field types>bugTeam:Search FoundationsMeta label for the Search Foundations team in Elasticsearch

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions