是否存在ElasticSearch的“批处理”文件?

时间:2016-01-26 21:34:59

标签: batch-file elasticsearch

我有23个ElasticSearch命令来创建索引,在开发过程中,我在数据中出错,所以我将它们全部删除。

有什么办法可以将这些命令放到一个文件中,然后告诉elasticsearch执行它们。换句话说,读取该文件?

我尝试了什么

我找到了一个workarround,将这些命令写入JAVA客户端,然后他们只运行该客户端。 它工作正常,但问题是每次我更改命令时,我都必须在java中更改查询(硬编码),而我更愿意从文件中更改它,因为这样更容易,我只是复制粘贴我的内容试试我的终端。

感谢

更新

按命令我的意思是这样的

  

curl -XPOST“http://localhost:9200/bank/_search?pretty

但要创建索引并创建映射

2 个答案:

答案 0 :(得分:0)

根据我的理解,您可以直接使用cmd执行某些命令。如果这是正确的,您可以执行以下任一操作:

  1. 创建一个包含所有命令的批处理文件 这样:

    @echo off
    elasticSearch.exe -someparameter
    elasticSearch.exe -someparameter
    elasticSearch.exe -someparameter
    elasticSearch.exe -someparameter
    pause
    
  2. 如果您要创建批处理文件以执行文本文件中的所有命令 不想编辑您的批处理文件,但不要介意编辑您的批处理文件 文本文件(无论出于何种原因)

    @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