我有23个ElasticSearch命令来创建索引,在开发过程中,我在数据中出错,所以我将它们全部删除。
有什么办法可以将这些命令放到一个文件中,然后告诉elasticsearch执行它们。换句话说,读取该文件?
我找到了一个workarround,将这些命令写入JAVA客户端,然后他们只运行该客户端。 它工作正常,但问题是每次我更改命令时,我都必须在java中更改查询(硬编码),而我更愿意从文件中更改它,因为这样更容易,我只是复制粘贴我的内容试试我的终端。
感谢
按命令我的意思是这样的
curl -XPOST“http://localhost:9200/bank/_search?pretty”
但要创建索引并创建映射
答案 0 :(得分:0)
根据我的理解,您可以直接使用cmd执行某些命令。如果这是正确的,您可以执行以下任一操作:
创建一个包含所有命令的批处理文件 这样:
@echo off
elasticSearch.exe -someparameter
elasticSearch.exe -someparameter
elasticSearch.exe -someparameter
elasticSearch.exe -someparameter
pause
如果您要创建批处理文件以执行文本文件中的所有命令 不想编辑您的批处理文件,但不要介意编辑您的批处理文件 文本文件(无论出于何种原因)
@echo off
FOR /F "usebackq delims=" %%G IN ("C:\somepath\ElasticSearch.txt") DO %%G
pause
并创建一个名为ElasticSearch.txt的文本文件,其中包含for 例如:
elasticSearch.exe -someparameter
elasticSearch.exe -someparameter
elasticSearch.exe -someparameter
elasticSearch.exe -someparameter
答案 1 :(得分:0)
要做这样的事情,就像Dennis那样,您需要使用批处理器。但是,您不会反复调用Elasticsearch作为进程。而是按照您希望它们运行的顺序运行您感兴趣的命令。
因为您注意到curl
,可能是您在Unix环境中运行。它简直就像创建一个简单执行命令的Bash Shell脚本一样简单:
#!/bin/sh
curl -XPOST "http://localhost:9200/bank -d '{
"settings" : {
...
}
"mappings" : {
...
}
}'
# Do some other request (as your own example)
curl -XPOST "http://localhost:9200/bank/_search?pretty