Нет обработчика для типа [join], объявленного в поле
Я попытался создать индекс с типом соединения на новом AWS Elasticsearch 6.0.
Следующая инструкция по документу Elasticsearch 6.0: https://www.elastic.co/guide/en/elasticsearch/reference/6.0/parent-join.html
PUT my_index
{
"mappings": {
"doc": {
"properties": {
"my_join_field": {
"type": "join",
"relations": {
"question": "answer"
}
}
}
}
}
}
Тогда я получил следующую ошибку:
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "No handler for type [join] declared on field [my_join_field]"
}
],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [doc]: No handler for type [join] declared on field [my_join_field]",
"caused_by": {
"type": "mapper_parsing_exception",
"reason": "No handler for type [join] declared on field [my_join_field]"
}
},
"status": 400
}
Мне интересно, если я что-то упустил? Спасибо!
1 ответ
Решение
У меня та же проблема. Основная причина - отсутствующий модуль в сервисе ElasticSearch, упакованный AWS. Если вы сравните конфигурацию локальной установки и конфигурацию, предоставленную AWS, вы обнаружите, что этот модуль отсутствует:
{
"name" : "parent-join",
"version" : "6.0.0",
"description" : "This module adds the support parent-child queries and aggregations",
"classname" : "org.elasticsearch.join.ParentJoinPlugin",
"has_native_controller" : false,
"requires_keystore" : false
}
Функция теперь доступна в AWS ES 6.0