【发布时间】:2015-03-04 00:17:51
【问题描述】:
Elasticsearch 和命令行编程新手问题。
我在我的计算机上本地设置了 elasticsearch,并希望使用 scan 和 scroll api 从使用不同版本 es 的服务器中提取文档并将它们添加到我的索引中。我无法弄清楚如何使用 es 的批量 api 来做到这一点。
现在在我的测试阶段,我只是使用以下代码从服务器中提取一些文档(有效):
http MY-OLD-ES.com:9200/INDEX/TYPE/_search?size=1000 | jq .hits.hits[] -c | while read x; do id="`echo "$x" | jq -r ._id`"; index="`echo "$x" | jq -r ._index`"; type="`echo "$x" | jq -r ._type`"; doc="`echo "$x" | jq ._source`"; http put "localhost:9200/junk-$index/$type/$id" <<<"$doc"; done
关于扫描和滚动如何工作的任何提示(菜鸟和有点困惑)。到目前为止,我知道我可以滚动并获取滚动 ID,但我不清楚如何处理滚动 ID。 如果我打电话给
http get http://MY-OLD-ES.com:9200/my_index/_search?scroll=1m&search_type=scan&size=10
我会收到一个滚动 ID。这可以用同样的方式输入和解析吗?此外,我相信我需要一个 while 循环来告诉它继续请求。我应该怎么做呢?
谢谢!
【问题讨论】:
标签: bash http elasticsearch kibana-4