Сортировка индекса Elasticsearch 7.4 с типом соединения - PullRequest
0 голосов
/ 24 марта 2020

Я хотел бы использовать сортировку индекса на основе поля join. Как я могу сделать это в 7.4?

Используемое мэппинг работает без проблем в ES v6.2, и я не вижу соответствующих изменений в заметках о выпуске. Индекс можно создать без ошибок, но при создании документа возвращается ошибка 400.

Я попытался удалить сортировку в этом поле без изменения остальной части сопоставления. Это показало, что ошибка была вызвана сортировкой по полю соединения, но не является идеальным в качестве окончательного решения.

Отображение (упрощенное):

{
    "settings": {
        "index": {
            "number_of_shards": 1,
            "number_of_replicas": 1,
            "sort": {
                "field": [
                    "accountId",
                    "type"
                ],
                "order": [
                    "desc",
                    "desc"
                ]
            }
        }
    },
    "mappings": {
        "dynamic": "strict",
        "properties": {
            "type": {
                "type": "join",
                "relations": {
                    "conversation": [
                        "message"
                    ]
                }
            },
            "accountId": {
                "type": "keyword"
            },
            "conversationId": {
                "type": "keyword"
            },
            "messageId": {
                "type": "keyword"
            }
        }
    }
}

Ошибка документа POST:

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "invalid doc value type:SORTED for sortField:<sortedset: \"type\">! missingValue=SortField.STRING_FIRST selector=MAX"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "invalid doc value type:SORTED for sortField:<sortedset: \"type\">! missingValue=SortField.STRING_FIRST selector=MAX"
    },
    "status": 400
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...