2014-12-13 36 views
0

我將從篩選查詢中獲取文檔(相當多的文檔)。然後我會立即創建一個索引(在Python中,使用requests直接查詢REST API),而不做任何修改。如何從搜索結果中創建索引,全部在服務器上?

是否可以直接在服務器上執行此操作,而不會將數據往返於腳本並返回?

Another question相似(在意向)和唯一的答案是通過Logstash去(相當於使用我的代碼,雖然可能更有效)

回答

1

參考http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html

總之你需要做什麼是 0),確保您擁有_source設置爲true

1)使用掃描和滾動API,通過與搜索類型的掃描你的過濾查詢,

2)取文件S使用滾動ID

2.)散裝指數的結果使用它返回您用來索引數據

指的JSON源字段: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html

導向/ EN/elasticsearch /導向/電流/ bulk.html

導向/ EN/elasticsearch /導向/電流/ reindex.html

+0

這實際上是我打算按照我的問題做的事。如何確保操作在elastiscearch中完成,以避免獲取和推送部分? – WoJ 2014-12-14 07:05:01

+0

「在elastiscearch中完成」你是否想要避免使用網絡?我不認爲你可以避免網絡調用,即使你在服務器本身上執行你的程序,它仍然會通過http傳遞給ES(即使你在java中使用傳輸客戶端,你仍然在使用網絡)。 – 2014-12-15 04:23:29