在Elasticsearch中将嵌套2维数组转换为1维

时间:2019-07-10 08:23:23

标签: elasticsearch

我有一些具有以下格式的弹性搜索条目:

{
    "_index": "sample_index",
    "_type": "documents",
    "_id": "SAMPLE-ID",
    "_version": 5,
    "_source": {
        "users": {
            "usernames": [
                [
                    "username-1",
                    "username-2",
                    "username-3"
                ],
                [
                    "username-4",
                    "username-5",
                    "username-6"
                ]
            ]
        }
    }
}

我想合并usernames的子数组并将其保存为:

{
    "_index": "sample_index",
    "_type": "documents",
    "_id": "SAMPLE-ID",
    "_version": 5,
    "_source": {
        "users": {
            "usernames": [
                "username-1",
                "username-2",
                "username-3",
                "username-4",
                "username-5",
                "username-6"
            ]
        }
    }
}

到目前为止,我已经尝试使用以下方法获取所有至少包含一个username的文档(可能甚至没有users字段的文档):

GET sample_index/documents/_search
{
    "query": {
        "bool": {
            "must": [
                {
                    "nested": {
                        "path": "users",
                        "query": {
                            "exists": {
                                "field": "users.usernames[0]"
                            }
                        }
                    }
                }
            ]
        }
    }
}

但这似乎不起作用。

我是Elasticsearch的新手。请帮忙。

0 个答案:

没有答案