2013-04-11 51 views
8

我是ElasticSearch的新手,所以這可能是一件相當平凡的事情,但我沒有想出任何更好的東西,抓取所有東西,用腳本處理並逐個更新寄存器。更新elasticsearch中的所有記錄中的字段

我想要的東西是一個簡單的SQL更新:

UPDATE RECORD SET SOMEFIELD = SOMEXPRESSION 

我的意圖是,以取代一些數據更有意義實際的假數據(這樣的表達基本上是隨機地從池中選擇有效值)。

回答

14

有一個關於使可以更新由查詢文件夫婦openissues

技術挑戰是lucene(elasticsearch使用的文本搜索引擎庫)段是隻讀的。你永遠不能修改現有的文件。什麼,你需要做的是刪除舊版本的文件(其中的方式爲已刪除,直到段合併發生將只被標記)和索引的新的。這就是現有的update api所做的。因此,通過查詢進行更新可能需要很長時間並導致問題,這就是爲什麼它尚未發佈。對於這種情況,允許中斷正在運行的查詢的機制也不錯。

但是有update by query plugin正是公開該功能。使用前請注意潛在的風險。

+1

經過一些研究,我得出的結論...有時我無法理解NoSQL周圍的所有炒作:( – fortran 2013-04-11 13:52:28

+0

這裏更多關於lucene比NoSQL在這裏。Lucene不更新,只是重新索引...因此,你更好地重新索引你自己:)我可以要求接受答案,如果它有用嗎? – javanna 2013-04-17 18:40:02

相關問題