Ich habe gerade auf Elastic Search 1.5.0 aktualisiert und bis jetzt kann ich inner_hits nicht mit einem geschachtelten Filter arbeiten, obwohl es gut mit einer geschachtelten Abfrage funktioniert.Innere Treffer funktionieren nicht mit verschachtelten Filtern?
Sagen wir, ich die innere verschachtelte Objekt Schauspieler innerhalb eines Film Objekt abrufen möchten.
Wenn ich die folgende verschachtelte Abfrage:
Syntax 1
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"query": {
"match": {
"actors.id": 12345
}
},
"inner_hits" : {}
}
}
}
}
}
=> Ich erhalte die inner_hits als here dokumentiert, was ganz gut ist.
aber wenn ich versuche zu tun, die äquivalente Abfrage mit einem verschachtelten Filter:
Syntax 2
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"filter": {
"term": {
"actors.id": 12345
}
},
"inner_hits" : {}
}
}
}
}
}
=> Ich erhalte den folgenden Parse-Fehler
QueryParsingException [ [my_index] [nested] benötigt entweder 'query' oder 'filter' Feld
(und die letzte Abfrage funktioniert gut, wenn ich inner_hits entfernen - außer natürlich, dass ich ... nicht die inneren Treffer erhalten)
Gibt es etwas falsch in der Syntax verwende ich oder ist die inner_hits noch nicht mit verschachtelten Filter implementiert?
Vielen Dank im Voraus
bearbeiten 3-30-2015
Es mit der Syntax arbeitet unter provided by @mdewit (danke!)
Syntax 3
GET my_index/movie/_search
{
"query": {
"nested": {
"path": "actors",
"query": {
"filtered": {
"filter": {
"term": {"actors.id": 12345}
}
}
},
"inner_hits" : {}
}
}
}
, obwohl diese Syntax nicht mit der 012 übereinstimmt
=> Ich verstehe immer noch nicht, was mit Syntax 2 falsch ist. Es scheint wie ein ES-Fehler für mich.
bearbeiten 2015.04.22: bug in ES 1.5.1 festgelegt, siehe meinen Kommentar unten
Ja, es funktioniert, danke dafür! Trotzdem werde ich die Frage offen lassen, da die von Ihnen angegebene Syntax nicht genau der ist, die in der offiziellen Nested-Filter-Dokumentation beschrieben wird: http://www.elastic.co/guide/en/elasticsearch/reference/1.x/ query-dsl-nested-filter.html Ich denke immer noch, dass etwas falsch in der Fehlermeldung ist, die ich von ES in dem Beispiel bekomme, das ich – benoit
zur Verfügung stellte, das wirklich arbeitet. –