当前位置: 首页 > 面试题库 >

从Shell脚本调用Elastic search索引pdf文档

白光耀
2023-03-14
问题内容

我安装了elasticsearch 5.0.1和相应的摄取附件。尝试从shell脚本索引PDF文档,如下所示

#!/bin/ksh  
var=$(base64 file_name.pdf)

var1=$(curl -XPUT 'http://localhost:9200/my_index4/my_type/my_id?pipeline=attachment&pretty' -d' { "data" : $var }')
echo $var1
I got error as 
{ "error" : { "root_cause" : [ { "type" : "exception", "reason" : 
"java.lang.IllegalArgumentException: ElasticsearchParseException[Error parsing document in field 
[data]]; nested: IllegalArgumentException[Illegal base64 character 24];",
 "header" : { "processor_type" : "attachment" } } ]...

任何人都可以帮助解决上述问题。不确定我是否传递了无效的base64字符?

请注意,当我这样通过时,它有效!

var1=$(curl -XPUT 'http://localhost:9200/my_index4/my_type/my_id?pipeline=attachment&pretty'
-d' { "data" : "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0=" }')

问题答案:

我猜想问题在于外壳不能在单引号内扩展变量,您需要双引号来扩展它。即

更改 -d' { "data" : $var }'

-d '{"data" : "'"$(base64 file_name.pdf)"'"}'

直接通过base64流。

(要么)

-d '{"data" : "'"$var"'"}'

有关报价和变量的更多信息,请参见ksh
此处。



 类似资料:
  • 问题内容: 我试图弄清楚如何从Shell脚本调用Python函数。 我有一个具有多个功能的Python文件,我需要在我的shell脚本中使用它们返回的值。有没有办法做到这一点。 我这样做是为了使用Python读取配置文件并在shell中获取值。还有其他更好的方法来实现这一目标。 包含: 我需要将Python函数返回的值存储在shell变量中。 问题答案: 您可以通过要求Python解释器打印结果来

  • 问题内容: 如何从外壳脚本内部执行Java方法? 问题答案: 您只能调用该方法。设计您的方法,使其调用所需的方法。 当我说 调用 方法时,您不会显式调用它。调用它是Java程序的唯一入口点。 如果您的班级看起来像: 您可以使用以下命令行在您可以找到的目录中调用from (如果您位于下面显示的结构的目录中): 如果要从其他目录(请参见下面的目录结构)执行此操作,则必须设置类路径。 为了清楚起见,请采

  • 用途:使用php将命令直接输入minecraft服务器控制台 我正在尝试使用php脚本(从浏览器运行)来执行shell脚本。当我从终端运行php时,它就可以工作了!但在浏览器中,什么都不会发生。 从终端运行时,我得到一个“数组0”,但浏览器给我一个“数组1” 问题是什么?一旦我运行了shell,之后的一切不应该像在终端上一样工作吗?(shell脚本内部的内容是否重要?) shell拥有所有rx权限

  • 本文向大家介绍Oracle重建索引Shell脚本、SQL脚本分享,包括了Oracle重建索引Shell脚本、SQL脚本分享的使用技巧和注意事项,需要的朋友参考一下 索引是提高数据库查询性能的有力武器。没有索引,就好比图书馆没有图书标签一样,找一本书自己想要的书比登天还难。然而索引在使用的过程中,尤其是在批量的DML的情形下会产生相应的碎片,以及B树高度会发生相应变化,因此可以对这些变化较大的索引进

  • 问题内容: 是否有任何库允许我从Shell脚本调用JMX MBean方法。我们通过JMX公开了一些操作/管理命令,我们可以让管理员使用JConsole或VisualVM,但最好将某些任务留给自动化。在这种自动化中,我们希望能够在运行的服务器上调用JMX MBean方法,最好是从Shell脚本中调用。 问题答案: 可以使用以下命令行JMX实用程序: jmxterm-似乎是功能最齐全的实用程序。 cm

  • 本文向大家介绍Shell脚本中引用、调用另一个脚本文件的2种方法,包括了Shell脚本中引用、调用另一个脚本文件的2种方法的使用技巧和注意事项,需要的朋友参考一下 在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: 在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh      方法二:   so