Elasticsearch获取嵌套字段

时间:2017-01-06 22:24:11

标签: elasticsearch

我正在尝试以下查询:

{
    "fields": [
        "id",
        "payload",
        "payload_parsed"
    ],
    "query": {
        "filtered": {
            "filter": {
                "bool": {
                    "must": [
                        {
                            "match": {
                                "id": "some-id-123"
                            }
                        }
                    ]
                }
            }
        }
    }
}

payload是一个JSON字符串,payload_parsed是已解析的有效内容。我不知道有效载荷是什么,它有多少嵌套级别。我没有对payload_parsed进行查询,而是对id进行查询,这是我得到的错误:"field [payload_parsed] isn't a leaf field"

如何获取数据?

1 个答案:

答案 0 :(得分:0)

这是一个记录在案的功能。在fields中,您只能使用叶节点,即没有子节点的节点。 在您的情况下,您需要通过_source获取该字段。 请尝试以下查询:

{
    "fields": [
        "id",
        "payload"
    ],
    "_source": "payload_parsed",
    "query": {
        "filtered": {
            "filter": {
                "bool": {
                    "must": [
                        {
                            "match": {
                                "id": "some-id-123"
                            }
                        }
                    ]
                }
            }
        }
    }
}