如何修复“文档映射类型名称不能以'_'开头,找到:[_create]_”elasticsearch?

Rag*_*har 7 node.js elasticsearch kubernetes

我正在使用 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);
...
Run Code Online (Sandbox Code Playgroud)

Val*_*Val 10

我认为问题在于您使用的是旧的 JS 客户端库而不是新的

对于 16.0.0,您需要明确地将apiVersion参数设置为 6.x 版本,因为 7.0 是默认值,这可能就是您看到此错误的原因(因为您使用的是 ES 6.3.0):

apiVersion: 6.7
Run Code Online (Sandbox Code Playgroud)