【问题标题】:No handler for type [join] declared on field没有在字段上声明的类型 [join] 的处理程序
【发布时间】:2017-12-14 19:46:02
【问题描述】:

我尝试在新的 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
}

我想知道我是否遗漏了什么?谢谢!

【问题讨论】:

  • 您确定要针对 Elasticsearch 6 进行测试吗?
  • 我检查了三次。一个相同的实例,我不能创建超过 1 种类型。旧的父子映射也不能正常工作。

标签: elasticsearch aws-elasticsearch


【解决方案1】:

我遇到了同样的问题。根本原因是 AWS 打包的 ElasticSearch 服务中缺少一个模块。 如果您比较本地安装的配置和 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 中提供

【讨论】:

  • 得到答案后请分享
  • 支持人员的回答是:“我已经继续并进一步研究了这一点,并直接从 Amazon Elasticsearch Service 开发团队获得了反馈。他们确实确认此时父加入模块在 Amazon ES 服务版本 6.0 中不可用,但他们正在努力添加支持。在最初的 6.0 版本中未启用,但他们正在调查尽快添加它。不幸的是,我们无法为此功能提供 ETA在这个时候。我鼓励您密切关注我们的“新功能”页面,了解该服务 [1] 的任何未来更新。”
  • AWS ES 6.0 现已提供该功能:要将其应用于现有集群,您必须重新构建它:例如增加节点实例类型,应用,然后减少节点实例类型。
猜你喜欢
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
相关资源
最近更新 更多