- 
                Notifications
    
You must be signed in to change notification settings  - Fork 25.6k
 
Open
Labels
:Analytics/AggregationsAggregationsAggregations:Search Relevance/SearchCatch all for Search RelevanceCatch all for Search Relevance>bugTeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)Meta label for analytical engine team (ESQL/Aggs/Geo)Team:Search RelevanceMeta label for the Search Relevance team in ElasticsearchMeta label for the Search Relevance team in Elasticsearchpriority:highA label for assessing bug priority to be used by ES engineersA label for assessing bug priority to be used by ES engineers
Description
Elasticsearch Version
Sometime in v8, present in current release
Installed Plugins
No response
Java Version
bundled
OS Version
any
Problem Description
Elasticsearch nested query with inner hits and top-hits aggregation will return illegal_state_exception.
Steps to Reproduce
This might even be able to reduced further, but the single doc with these fields is enough.
DELETE test
PUT test
{
    "mappings": {
        "properties": {
            "nested_item": {
                "type": "nested",
                "properties": {
                    "title": {
                        "type": "text"
                    },
                    "keyword3": {
                        "type": "keyword"
                    },
                    "content": {
                        "type": "text"
                    },
                    "number": {
                        "type": "long"
                    }
                }
            }
        }
    }
}
POST test/_doc
{
    "nested_item": [
        {
            "title": "foo"
        },
        {
            "keyword3": "foobar",
            "title": "foobar",
            "content": "foobar`foobar"
        },
        {
            "title": "baz| barz",
            "content": "foobar`foobar",
            "number": "2"
        }
    ]
}
POST test/_search
{
    "aggregations": {
        "nested_item": {
            "aggregations": {
                "nested_item_filter": {
                    "aggregations": {
                        "0": {
                            "aggregations": {
                                "01": {
                                    "top_hits": {}
                                }
                            },
                            "filter": {
                                "bool": {
                                    "should": []
                                }
                            }
                        }
                    },
                    "filter": {
                        "bool": {
                            "should": []
                        }
                    }
                }
            },
            "nested": {
                "path": "nested_item"
            }
        }
    },
    "query": {
        "nested": {
            "inner_hits": {},
            "path": "nested_item",
            "query": {
                "bool": {
                    "should": []
                }
            }
        }
    }
}
Logs (if relevant)
java.lang.IllegalStateException: Error retrieving path nested_item
  at [email protected]/org.elasticsearch.search.SearchHit$NestedIdentity.extractSource(SearchHit.java:1097)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.prepareNestedHitContext(FetchPhase.java:424)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.prepareHitContext(FetchPhase.java:307)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase$1.nextDoc(FetchPhase.java:214)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhaseDocsIterator.iterate(FetchPhaseDocsIterator.java:90)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.buildSearchHits(FetchPhase.java:248)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.execute(FetchPhase.java:91)
  at [email protected]/org.elasticsearch.search.fetch.subphase.InnerHitsPhase.hitExecute(InnerHitsPhase.java:96)
  at [email protected]/org.elasticsearch.search.fetch.subphase.InnerHitsPhase$1.process(InnerHitsPhase.java:63)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase$1.nextDoc(FetchPhase.java:231)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhaseDocsIterator.iterate(FetchPhaseDocsIterator.java:90)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.buildSearchHits(FetchPhase.java:248)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.execute(FetchPhase.java:91)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.TopHitsAggregator.runFetchPhase(TopHitsAggregator.java:245)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.TopHitsAggregator.buildAggregation(TopHitsAggregator.java:201)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.MetricsAggregator.lambda$buildAggregations$0(MetricsAggregator.java:41)
  at [email protected]/org.elasticsearch.search.aggregations.AggregatorBase.buildAggregations(AggregatorBase.java:343)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.MetricsAggregator.buildAggregations(MetricsAggregator.java:41)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:175)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForFixedBucketCount(BucketsAggregator.java:269)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator.buildAggregations(FiltersAggregator.java:212)
  at [email protected]/org.elasticsearch.search.aggregations.AdaptingAggregator.buildAggregations(AdaptingAggregator.java:103)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:175)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForFixedBucketCount(BucketsAggregator.java:269)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator.buildAggregations(FiltersAggregator.java:212)
  at [email protected]/org.elasticsearch.search.aggregations.AdaptingAggregator.buildAggregations(AdaptingAggregator.java:103)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:175)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForSingleBucket(BucketsAggregator.java:307)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.nested.NestedAggregator.buildAggregations(NestedAggregator.java:129)
  at [email protected]/org.elasticsearch.search.aggregations.Aggregator.buildTopLevel(Aggregator.java:162)
  at [email protected]/org.elasticsearch.search.aggregations.AggregatorCollector.doPostCollection(AggregatorCollector.java:48)
  at [email protected]/org.elasticsearch.search.query.QueryPhaseCollector.doPostCollection(QueryPhaseCollector.java:380)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.doAggregationPostCollection(ContextIndexSearcher.java:414)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:403)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.lambda$search$3(ContextIndexSearcher.java:367)
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
  at [email protected]/org.apache.lucene.search.TaskExecutor$Task.run(TaskExecutor.java:173)
  at [email protected]/org.apache.lucene.search.TaskExecutor.invokeAll(TaskExecutor.java:111)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:371)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:338)
  at [email protected]/org.elasticsearch.search.query.QueryPhase.addCollectorsAndSearch(QueryPhase.java:213)
  at [email protected]/org.elasticsearch.search.query.QueryPhase.executeQuery(QueryPhase.java:143)
  at [email protected]/org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:70)
  at [email protected]/org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:700)
  at [email protected]/org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:906)
  at [email protected]/org.elasticsearch.search.SearchService.lambda$executeQueryPhase$7(SearchService.java:739)
  at [email protected]/org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:79)
  at [email protected]/org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:76)
  at [email protected]/org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:101)
  at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
  at [email protected]/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
  at [email protected]/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1076)
  at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
  at java.base/java.lang.Thread.run(Thread.java:1474)
Metadata
Metadata
Assignees
Labels
:Analytics/AggregationsAggregationsAggregations:Search Relevance/SearchCatch all for Search RelevanceCatch all for Search Relevance>bugTeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)Meta label for analytical engine team (ESQL/Aggs/Geo)Team:Search RelevanceMeta label for the Search Relevance team in ElasticsearchMeta label for the Search Relevance team in Elasticsearchpriority:highA label for assessing bug priority to be used by ES engineersA label for assessing bug priority to be used by ES engineers