我正在尝试发送JSON到elasticSearch。我已经尝试使用Postman和SOAPUI。数据是
[{"column1": "abc", "column2": "def", "column3": "dghi", "column4": "jkl", "column5": "mno"}, {"column1": "pqr", "column2": "stu", "column3": "vwx", "column4": "", "column5": ""}]
我收到以下错误
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "failed to parse"
}
],
"type": "mapper_parsing_exception",
"reason": "failed to parse",
"caused_by": {
"type": "not_x_content_exception",
"reason": "Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes"
}
},
"status": 400
}
但是当我发布一个JSON数组时,
{"column1": "abc", "column2": "def", "column3": "dghi", "column4": "jkl", "column5": "mno"}
然后它工作得很好。我是ElasticSearch的新手,所以不确定出了什么问题。
8条答案
按热度按时间tvmytwxo1#
尝试先使用大括号,然后命名数组。尝试一下,看看它是否有效。
例如:
因为它包含在一个对象中。
甚至更好;当我试验
JSON.stringify();
时,我发现它将数组转换为JSON,如下所示:cmssoen22#
我最近在使用curl时遇到了这个问题,这是一个简单的错字。我没有使用内联json,而是从一个文件中。我忘记在文件名前包括@符号。
jtoj6r0c3#
谢谢@hellol11
当我换成
cczfrluj4#
在Windows环境中,我解决了这个问题。
并用反斜杠加双引号(\”)将名称括起来
命令〉
ryevplcw5#
我在一个Python脚本(使用请求)中遇到了这个问题,尝试将其POST到ES。
示例(Python snipit):
pkbketx96#
我在尝试发布到elasticsearch时也得到了同样的错误,但是使用的是node js。我使用node-fetch包向elasticsearch发出PUT请求。这很奇怪,因为在postman上使用完全相同的东西,我没有得到错误,但是在node js上得到了错误。我最初是这样做的:
当我将其更改为以下内容时,错误得到了修复:
qc6wkl3g7#
在ElasticSearch中,如果要发布批量数据,则每个列表对象必须位于新行中。因此,如果使用sense,则将所有内容都置于新行中;如果使用from code,则添加新行字符\n...
pcww981p8#
对于那些直接想在curl查询中发送数据并得到
"not_x_content_exception"
错误的人,我已经设法通过使用双引号修复了它: