分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)
1、手動指定document id
(1)根據應用情況來說,是否滿足手動指定document id的前提: 
 一般來說,是從某些其他的系統中,導入一些數據到es時,會采取這種方式,就是使用系統中已有數據的唯一標識,作為es中document的id。舉個例子,比如說,我們現在在開發一個電商網站,做搜索功能,或者是OA系統,做員工檢索功能。這個時候,數據首先會在網站系統或者IT系統內部的數據庫中,會先有一份,此時就肯定會有一個數據庫的primary key(自增長,UUID,或者是業務編號)。如果將數據導入到es中,此時就比較適合采用數據在數據庫中已有的primary key。
如果說,我們是在做一個系統,這個系統主要的數據存儲就是es一種,也就是說,數據產生出來以后,可能就沒有id,直接就放es一個存儲,那么這個時候,可能就不太適合說手動指定document id的形式了,因為你也不知道id應該是什么,此時可以采取下面要講解的讓es自動生成id的方式。
(2) PUT /test_index/test_type/id 的方式手動指定id
PUT /test_index/test_type/2 {"test_content":"my test" }GET /test_index/test_type/2運行之后,結果是:
{"_index": "test_index","_type": "test_type","_id": "2","_version": 1,"found": true,"_source": {"test_content": "my test"} }從上面可以看出,id為2
2.自動生成document id
語法是: 
 (1)post /index/type
要注意的是:這里的PUT變成了post
ES中使用guid的方式生成id。保證不同節點上document的id是不一樣的。
ES自動生成的id,長度為20個字符,URL安全(id可以放到url中),base64編碼,GUID,分布式系統并行生成時不可能會發生沖突。
總結
以上是生活随笔為你收集整理的分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: MySQL MMM多主多从搭建
- 下一篇: 三津汤包的包子的优势
