我正在尝试编写一个Elasticsearch查询,该查询将返回具有嵌套字段的元素。但是,我显然遇到了很多困难。我对该字段的映射通常如下所示:
{
"myType": {
"properties": {
"hello": {
"type": "nested",
"properties": {
"foo": {"type": "string", "index": "not_analyzed"},
"bar": {"type": "string", "index": "not_analyzed"},
}
}
}
}
}
我的查询一般如下:
{
"query": {
"filtered": {
"filter": {
"exists": {
"field": "hello.foo"
}
}
}
}
}
即使我知道有匹配的文档,此查询也会返回0个匹配的文档。
我还尝试在exists
查询中使用nested
查询,但收到的错误消息是nested
查询不支持exists
查询。
我正在对Elasticsearch 2.3进行测试。非常感谢任何帮助!
答案 0 :(得分:2)
我希望这会有所帮助
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "hello",
"filter": {
"term": { // replace term to "match" in case of fulltext
"hello.foo": "value to be searched"
}
}
}
}
]
}
},
"from": 0,
"size": 50
}