我將從篩選查詢中獲取文檔(相當多的文檔)。然後我會立即創建一個索引(在Python中,使用requests
直接查詢REST API),而不做任何修改。如何從搜索結果中創建索引,全部在服務器上?
是否可以直接在服務器上執行此操作,而不會將數據往返於腳本並返回?
Another question相似(在意向)和唯一的答案是通過Logstash去(相當於使用我的代碼,雖然可能更有效)
我將從篩選查詢中獲取文檔(相當多的文檔)。然後我會立即創建一個索引(在Python中,使用requests
直接查詢REST API),而不做任何修改。如何從搜索結果中創建索引,全部在服務器上?
是否可以直接在服務器上執行此操作,而不會將數據往返於腳本並返回?
Another question相似(在意向)和唯一的答案是通過Logstash去(相當於使用我的代碼,雖然可能更有效)
參考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
ES 2.3有一個實驗功能,它允許重新索引從查詢 https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
這實際上是我打算按照我的問題做的事。如何確保操作在elastiscearch中完成,以避免獲取和推送部分? – WoJ 2014-12-14 07:05:01
「在elastiscearch中完成」你是否想要避免使用網絡?我不認爲你可以避免網絡調用,即使你在服務器本身上執行你的程序,它仍然會通過http傳遞給ES(即使你在java中使用傳輸客戶端,你仍然在使用網絡)。 – 2014-12-15 04:23:29