📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

为什么这个错误发生 #

type_missing_exception 表示请求的类型在索引映射中不存在。在 Easysearch 7.x 及以后,不再支持显式的类型(type),每个文档的 “_type” 字段默认为 “_doc”。

如何修复 #

1. 移除类型引用 #

# 不要在 API 请求中指定类型
# 使用
POST /<index>/_doc/<id>

# 而不是(7.x 之前的语法)
POST /<index>/<type>/<id>

2. 更新代码 #

# Python 客户端
# 使用新的 API
es.index(index="<index>", id="<id>", document={"field": "value"})

# 而不是
es.index(index="<index>", doc_type="<type>", id="<id>", document={"field": "value"})

3. 查看文档时不需要类型 #

# 获取文档
GET /<index>/_doc/<id>

# 搜索
GET /<index>/_search
{
  "query": { "match_all": {} }
}

预防措施 #

  • 使用新版本 API