Сделать вложенный 2-мерный массив в 1-мерный вasticsearch - PullRequest
0 голосов
/ 10 июля 2019

У меня есть несколько эластичных записей поиска в формате:

{
    "_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.Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...