2015-04-07 64 views
0

我正在將表從SQL移動到彈性搜索。它有一個revision_number列,其值等於之前的值+ 1. 我發現ES不支持自動增量功能。 我應該在服務器端代碼上創建一個靜態整數並在插入時每次分配它?什麼是實現它的最好方法在彈性搜索中插入下一個可用整數

回答

0

是的,Elasticsearch沒有任何字段的自動遞增功能。見this。正如您已經正確提到的那樣,這必須通過增加一些靜態整數在客戶端(Elasticsearch集羣的客戶端)上實現。

1

使用靜態整數將無助於服務器重新啓動時,它將被重置。 通過使用_versions有一個解決方法。版本號是彈性搜索的內部構建https://www.elastic.co/blog/elasticsearch-versioning-support

使用最小字段在彈性搜索中創建虛擬索引或類型。在Id = 1中插入一個值。它將返回Object和版本Info。每次你需要一個增量整數時,更新那個虛擬索引。它會返回增加的版本號。我從 http://blogs.perl.org/users/clinton_gormley/2011/10/elasticsearchsequence---a-blazing-fast-ticket-server.html

得到了這個把戲