【问题标题】:How to fix "Document mapping type name can't start with '_', found: [_create]_" elasticsearch?如何修复“文档映射类型名称不能以'_'开头,找到:[_create]_”elasticsearch?
【发布时间】:2019-07-10 05:59:19
【问题描述】:

我正在使用 Nodejs 将一些数据索引到 Elasticsearch(托管在 kubernetes 上),我正在使用 client.create() 方法来索引 Elasticsearch 中的文档。如果我在 localhost 和 kubernetes Elasticsearch 端点上运行代码,一切正常。但是在我尝试索引文档时部署相同的代码后,我收到了一个错误:

"[invalid_type_name_exception] 文档映射类型名称无法启动 使用 '_',找到:[_create] :: {"path":"/index_name/_create/docId"]"。

Elasticsearch 版本“6.3.0”和 node_module 版本“^16.0.0”。 此外,它最初可以工作,但从过去几天开始停止工作。 我认为问题在于某些兼容性和配置,有人可以帮忙吗?

我尝试使用 client.index 而不是 client.create 并且效果很好。 我已经匹配了本地和服务器上的所有配置和兼容性文件。我觉得一切都很好。

const elasticsearchDoc = {
      index: "school",
      type: "_doc",
      id: 12345,
      body: { name:"raj",marks:40 }
};
const result = await client.create(elasticsearchDoc);
...

【问题讨论】:

    标签: node.js elasticsearch kubernetes


    【解决方案1】:

    我认为问题在于您使用的是old JS client 库而不是the new one

    对于 16.0.0,您需要 to explicitely set the apiVersion parameter 到 6.x 版本,因为 7.0 是默认版本,这可能就是您看到此错误的原因(因为您使用的是 ES 6.3.0):

    apiVersion: 6.7
    

    【讨论】:

    • 但是它是如何在本地主机上工作的,因为我在本地和服务器上使用相同的 node_module 版本
    • 你确定本地和服务器的ES版本相同吗?
    • 是的,6.3.0版本。我也确定是配置或兼容性问题,但我想不通。
    • 是的,我得到了解决方案,这是一个节点模块版本问题。即版本兼容性冲突。谢谢你的回答,确实有帮助。
    • 酷,很高兴你知道了,如果有帮助,请随时接受 ;-)
    猜你喜欢
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多