ich eine Suchabfrage mit der folgenden Nutzlast gehabt haben: -inner_hit Definition mit dem Namen [TypeName] existiert bereits. Verwenden Sie einen anderen inner_hit Namen
"query": {
"filtered": {
"filter": {
"and": [
{
"range": {
"@timestamp": {
"gte": "2015-01-01||/d",
"lte": "2016-01-01||/d"
}
}
},
{
"or": [
{
"has_child": {
"type": "TypeName",
"filter": {
"term": {
"eventType.raw": "some-event"
}
},
"inner_hits": {
"_source": "@timestamp"
}
}
},
{
"not": {
"has_child": {
"type": "TypeName",
"filter": {
"term": {
"eventType.raw": "some-event"
}
},
"inner_hits": {
"_source": "@timestamp"
}
}
}
}
]
}
]
}
}
}
und dies funktionierte gut mit Elasticsearch 1.7 aber mit der letzten stabilen Version 2.3.3 von Elasticsearch tut es nicht ganz funktioniert und schlägt mit der folgenden Reaktion: -
"reason": {
"type": "illegal_argument_exception",
"reason": "inner_hit definition with the name [TypeName] already exists. Use a different inner_hit name"
}
die Protokolle zeigen den folgenden Stack-Trace: -
nested: IllegalArgumentException[inner_hit definition with the name [TypeName] already exists. Use a different inner_hit name];
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:855)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:654)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:620)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:371)
at org.elasticsearch.search.action.SearchServiceTransportAction$SearchQueryTransportHandler.messageReceived(SearchServiceTransportAction.java:368)
at org.elasticsearch.search.action.SearchServiceTransportAction$SearchQueryTransportHandler.messageReceived(SearchServiceTransportAction.java:365)
at org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33)
at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:75)
at org.elasticsearch.transport.TransportService$4.doRun(TransportService.java:376)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: inner_hit definition with the name [TypeName] already exists. Use a different inner_hit name
at org.elasticsearch.search.fetch.innerhits.InnerHitsContext.addInnerHitDefinition(InnerHitsContext.java:69)
at org.elasticsearch.index.query.QueryParseContext.addInnerHits(QueryParseContext.java:218)
at org.elasticsearch.index.query.HasChildQueryParser.parse(HasChildQueryParser.java:155)
at org.elasticsearch.index.query.QueryParseContext.parseInnerFilter(QueryParseContext.java:277)
at org.elasticsearch.index.query.NotQueryParser.parse(NotQueryParser.java:69)
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:250)
at org.elasticsearch.index.query.QueryParseContext.parseInnerFilter(QueryParseContext.java:263)
at org.elasticsearch.index.query.OrQueryParser.parse(OrQueryParser.java:69)
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:250)
at org.elasticsearch.index.query.QueryParseContext.parseInnerFilter(QueryParseContext.java:263)
at org.elasticsearch.index.query.AndQueryParser.parse(AndQueryParser.java:69)
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:250)
at org.elasticsearch.index.query.QueryParseContext.parseInnerFilter(QueryParseContext.java:263)
at org.elasticsearch.index.query.FilteredQueryParser.parse(FilteredQueryParser.java:79)
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:250)
at org.elasticsearch.index.query.IndexQueryParserService.innerParse(IndexQueryParserService.java:320)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:223)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:218)
at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:838)
... 12 more
Irgendeine Idee, was hier schief gehen könnte?