Skip to content

Terms lookup filter in filter aggregation complains that the query is not rewritten #21301

@jpountz

Description

@jpountz

Reported at https://discuss.elastic.co/t/5-0-cant-have-terms-query-within-a-filter-aggregation/64768

Here is a recreation:

PUT test
{
  "mappings": {
    "post": {
      "properties": {
        "mentionIDs": {
          "type": "keyword"
        }
      }
    },
    "user": {
      "properties": {
        "notifications": {
          "type": "keyword"
        }
      }
    }
  }
}

PUT test/user/USR|CLIENTID|1234
{
  "notifications": ["abc"]
}

PUT test/post/POST|4321
{
  "mentionIDs": ["abc"]
}

GET _search
{
  "aggs": {
    "itemsNotify": {
      "filter": {
        "terms": {
          "mentionIDs": {
            "index": "users",
            "type": "user",
            "id": "USR|CLIENTID|1234",
            "path": "notifications",
            "routing": "CLIENTID"
          }
        }
      }
    }
  }
}

which fails with:

[elasticsearch] [2016-11-03T11:28:45,410][WARN ][r.suppressed             ] path: /_search, params: {}
[elasticsearch] org.elasticsearch.action.search.SearchPhaseExecutionException: all shards failed
[elasticsearch] 	at org.elasticsearch.action.search.AbstractSearchAsyncAction.onFirstPhaseResult(AbstractSearchAsyncAction.java:204) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:139) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:51) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:980) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1081) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1059) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.transport.TransportService$6.onFailure(TransportService.java:585) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.onFailure(ThreadContext.java:490) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:39) [elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_66-ea]
[elasticsearch] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_66-ea]
[elasticsearch] 	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66-ea]
[elasticsearch] Caused by: org.elasticsearch.transport.RemoteTransportException: [EFHp1JN][127.0.0.1:9300][indices:data/read/search[phase/query]]
[elasticsearch] Caused by: java.lang.UnsupportedOperationException: query must be rewritten first
[elasticsearch] 	at org.elasticsearch.index.query.TermsQueryBuilder.doToQuery(TermsQueryBuilder.java:317) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.index.query.AbstractQueryBuilder.toQuery(AbstractQueryBuilder.java:95) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.aggregations.bucket.filter.FilterAggregatorFactory.<init>(FilterAggregatorFactory.java:45) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder.doBuild(FilterAggregationBuilder.java:75) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.aggregations.AbstractAggregationBuilder.build(AbstractAggregationBuilder.java:126) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.aggregations.AggregatorFactories$Builder.build(AggregatorFactories.java:208) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.SearchService.parseSource(SearchService.java:730) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.SearchService.createContext(SearchService.java:554) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:530) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:265) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:300) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:297) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:66) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.transport.TransportService$6.doRun(TransportService.java:574) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:504) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]
[elasticsearch] 	at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.0.0-alpha1-SNAPSHOT.jar:6.0.0-alpha1-SNAPSHOT]

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions