Я хотел бы использовать сортировку индекса на основе поля 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
}