我安装了带有摄取附件的elasicsearch 5.0.1,并尝试使用下面的命令从shell脚本中的elasticsearch索引pdf
#!/bin/ksh
var=$(base64 sample.pdf | perl -pe 's/\n/\\n/g')
var1=$(curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' -d' { "data" : "'$var'" }')
echo $var1
出现错误
{ "error" : { "root_cause" : [ { "type" : "exception", "reason" : "java.lang.IllegalArgumentException: ElasticsearchParseException[Error parsing document in field [data]]; nested: IllegalArgumentException[Illegal base64 character a];", "header" : { "processor_type" : "attachment" } } ]
任何人都可以帮助解决上述错误
答案 0 :(得分:0)
纠正错误。 导致此错误的原因是,在base64编码的内容中存在\ n,导致"非法格式异常"。 作为一种解决方案,当尝试如下工作时
var=$(base64 sample.pdf | perl -pe 's/\n//g')