出于某种原因,它不允许我过滤字段名称为id
的嵌套字段
映射
{
"mappings": {
"user": {
"_id": {
"path": "userID"
},
"properties": {
...,
"languages": {
"type": "nested",
"properties": {
"id": {
"type": "integer"
},
"level": {
"type": "integer"
},
"learning": {
"type": "boolean"
},
"teaching": {
"type": "boolean"
}
}
},
...,
}
}
}
}
索引文档
_source: {
...,
languages: [{
id: 11,
level: "4",
learning: true
}, {
id: 192,
level: "5",
learning: true
}, {
id: 3,
level: "6",
teaching: true
}, {
id: 165,
level: "2",
learning: true
}],
...,
}
问题出现在这里,如果我搜索术语id
,那么无论我使用什么价值,我什么也得不到。
查询 curl -XGET localhost:9200 / users / user / _search -d
{
"query": {
"filtered": {
"filter": {
"nested": {
"path": "languages",
"filter": {
"term": {
"id": 165
}
}
}
}
}
}
}
如果我用"id": 25
(或除id之外的任何内容)替换"level": 5
,那么我就会得到我正在搜索的内容。
使用我遗漏的过滤字段名id
时是否有隐藏的技巧?