J'essaie de filtrer sur un champ au sein d'un nested document dans une requête Elasticsearch (ES 5.6.2). Le document imbriqué est lui-même un champ dans un objet interne du document principal. La cartographie ressemble à ceci:Comment interroger un document imbriqué Elasticsearch dans un objet interne?
{
"mappings": {
"container": {
"properties": {
"host": {
"properties": {
"tags_nested": {
"type": "nested",
"properties": {
"tag_key": {
"type": "keyword"
},
"tag_val": {
"type": "keyword"
}
}
}
}
}
}
}
}
}
Je veux filtrer host.tags_nested.tag_keys
, mais je ne peux pas trouver la bonne syntaxe pour accéder au document tags_nested
imbriqué dans le host
objet interne. J'ai essayé la requête suivante, qui ne renvoie aucun résultat, quand je sais qu'il ya certains qui doivent correspondre:
{
"query": {
"nested": {
"path": "host.tags_nested",
"query": {
"bool": {
"filter": [
{
"term": {
"host.tags_nested.tag_key": "example_key"
}
}
]
}
}
}
}
}
Selon le ES docs, vous pouvez faire une requête nested
pour interroger dans un document imbriqué, par en passant un path
qui correspond au nom du champ du document imbriqué. Mais cela ne semble pas fonctionner lorsque le path
est dans un objet interne et doit être accessible en utilisant la notation par points.
Des idées?