ES8.13 _bulk报错Malformed content, found extra data after parsing: START_OBJECT解决

在使用elaticsearch8.13.0使用批量创建索引时,根据谷粒中说的es7.9方法去批量操作请求:

http://127.0.0.1:9200/shop/_doc/_bulk

**注意1:**设置header为Content-Type:application/x-ndjson,否则请求报错:

javascript 复制代码
{
    "error": "Content-Type header [] is not supported",
    "status": 406
}

body:

javascript 复制代码
{"index": {"_index":"shop","_type":"_doc","_id": "2004"}} 
{"id": "2004", "nickname": "index2004"} 
{"index": {"_index":"shop","_type":"_doc","_id": "2007"}} 
{"id": "2007", "nickname": "name2007"} 
{"index": {"_index":"shop","_type":"_doc","_id": "2008"}} 
{"id": "2008", "nickname": "name2008"}

报错信息如下:

javascript 复制代码
{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "Malformed content, found extra data after parsing: START_OBJECT"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "Malformed content, found extra data after parsing: START_OBJECT"
    },
    "status": 400
}

根据报错翻译:内容格式错误,解析后发现额外数据:START_OBJECT。其实说白了就是请求的url不对。大家可以参考elaticsearch官网查看:

Bulk API | Elasticsearch Guide [8.14] | Elastic

注意2: body里面的Json或text最后要多空一行,如下截图:

否则会报错:

javascript 复制代码
{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "The bulk request must be terminated by a newline [\\n]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "The bulk request must be terminated by a newline [\\n]"
    },
    "status": 400
}

当你把上面的2个注意项设置后,请求成功界面如下:

相关推荐
vivo互联网技术8 分钟前
Flink 的 RocksDB 状态后端在 vivo 的实践
大数据
BugShare36 分钟前
嘿嘿,一个简单ElasticSearch小实现
java·大数据·spring boot·elasticsearch
muxue1782 小时前
Hadoop集群搭建(下):centos 7为例(已将将安装所需压缩包统一放在了/opt/software目录下)
大数据·hadoop·centos
武子康2 小时前
大数据-151 Apache Druid 集群落地 [上篇] MySQL 元数据 + HDFS 深存与低配调优
大数据·后端·nosql
weisian1512 小时前
Elasticsearch-4--倒排索引的原理?
大数据·elasticsearch·搜索引擎
q***07143 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
張萠飛3 小时前
Phoenix+Hbase和Doris两个方案如何选择,能不能拿Doris完全替代Phoenix+Hbase?有什么难点?
大数据·数据库·hbase
黄雪超10 小时前
从流批一体到湖仓一体架构演进的思考
大数据·架构·数据湖
songyuc12 小时前
【Git】请帮忙解释一下“git reset”
git·elasticsearch
Elastic 中国社区官方博客13 小时前
Observability:适用于 PHP 的 OpenTelemetry:EDOT PHP 加入 OpenTelemetry 项目
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·php