按嵌套字段搜索

时间:2014-06-24 17:01:15

标签: elasticsearch nested

我在使用嵌套字段进行搜索时遇到了问题。

例如我的文件是:

{
    "chat": [
        {
            "messages": [
                {
                    "id": "61",
                    "text": "some text here"
                },
                {
                    "id": "62",
                    "text": "some62 text62 here62"
                },
                {
                    "id": "63",
                    "text": "some63 text63 here63"
                },
                {
                    "id": "64",
                    "text": "some64 text64 here64"
                }
            ]
        }
    ]
}

我正在搜索messages.text。如果我搜索

"text": "some"

{
    "query" : {
        "nested": {
            "path": "messages",
            "query": {
                "bool": {
                    "must": [{
                        "match": {
                            "text": "some"
                        }
                    }]
                }
            }
        }
    }
}

我希望输出类似

{
    "chat": [
        {
            "messages": [
                {
                    "id": "61",
                    "text": "some text here"
                }
            ]
        }
    ]
}

而不是整个文件。我想我应该使用嵌套属性,因此聊天中的消息被映射为"嵌套"。 请有人帮助我。

1 个答案:

答案 0 :(得分:0)

答案是" Elasticsearch目前不支持该功能。您需要更改为父/子文档才能仅返回相关文档。"从这里https://groups.google.com/forum/#!topic/elasticsearch/Y9o9Vz8BT1s