【发布时间】:2017-03-06 04:59:54
【问题描述】:
我将从过滤后的查询中获取文档(相当多的文档)。然后我将立即从它们创建一个索引(在 Python 中,使用requests 直接查询 REST API),无需任何修改。
是否可以直接在服务器上进行此操作,而无需数据往返脚本和返回?
Another question 类似(在意图上),唯一的答案是通过 Logstash(相当于使用我的代码,尽管可能更有效)
【问题讨论】:
标签: elasticsearch
我将从过滤后的查询中获取文档(相当多的文档)。然后我将立即从它们创建一个索引(在 Python 中,使用requests 直接查询 REST API),无需任何修改。
是否可以直接在服务器上进行此操作,而无需数据往返脚本和返回?
Another question 类似(在意图上),唯一的答案是通过 Logstash(相当于使用我的代码,尽管可能更有效)
【问题讨论】:
标签: elasticsearch
参考http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html
简而言之,您需要做的是 0.) 确保您将 _source 设置为 true
1.) 使用扫描和滚动 API,通过搜索类型扫描传递过滤后的查询,
2.) 使用滚动 ID 获取文档
2.) 使用返回用于索引数据的 json 的源字段对结果进行批量索引
参考: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html
guide/en/elasticsearch/guide/current/bulk.html
guide/en/elasticsearch/guide/current/reindex.html
【讨论】:
es 2.3 有一个实验性功能,允许从查询中重新索引 https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
【讨论】: