91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Elasticsearch document id 生成方式是什么

發布時間:2021-12-16 17:33:36 來源:億速云 閱讀:234 作者:柒染 欄目:云計算

本篇文章為大家展示了Elasticsearch document id 生成方式是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Elasticsearch document id 生成方式是什么

手動指定

根據應用情況來說,是否滿足手動指定 document id 的前提:

一般來說,是從某些其他的系統中,導入一些數據到es時,會采取這種方式,就是使用系統中已有數據的唯一標識,作為es中document的id。舉個例子,比如說,我們現在在開發一個電商網站,做搜索功能,或者是OA系統,做員工檢索功能。這個時候,數據首先會在網站系統或者IT系統內部的數據庫中,會先有一份,此時就肯定會有一個數據庫的primary key(自增長,UUID,或者是業務編號)。如果將數據導入到 Elasticsearch 中,此時就比較適合采用數據在數據庫中已有的primary key。

如果說,我們是在做一個系統,這個系統主要的數據存儲就是 Elasticsearch 一種,也就是說,數據產生出來以后,可能就沒有id,直接就放es一個存儲,那么這個時候,可能就不太適合說手動指定document id的形式了,因為你也不知道id應該是什么,此時可以采取下面要講解的讓 Elasticsearch 自動生成id的方式。

# put /index/type/id

PUT /test_index/test_type/2
{
  "test_content": "my test"
}

{
  "_index" : "test_index",
  "_type" : "test_type",
  "_id" : "2",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}

自動生成

# post /index/type

PUT test_index/test_type
{
  "test_content": "my test automated document id"
}

{
  "error" : "Incorrect HTTP method for uri [/test_index/test_type?pretty=true] and method [PUT], allowed: [POST]",
  "status" : 405
}

POST /test_index/test_type
{
  "test_content": "my test"
}

{
  "_index" : "test_index",
  "_type" : "test_type",
  "_id" : "A7Ma5XYB_s8SuYmy2Xg0",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}
# post /index/type

PUT test_index/test_type
{
  "test_content": "my test automated document id"
}

{
  "error" : "Incorrect HTTP method for uri [/test_index/test_type?pretty=true] and method [PUT], allowed: [POST]",
  "status" : 405
}

POST /test_index/test_type
{
  "test_content": "my test"
}

{
  "_index" : "test_index",
  "_type" : "test_type",
  "_id" : "A7Ma5XYB_s8SuYmy2Xg0",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}

有可能兩個創建 Document 的請求是完全在同一時間執行的(小概率事件),只不過在不同的 Elastic 節點上,那么,如果 _id 自動生成的算法不夠好的話,有沒有可能出現兩個節點,給兩個不同的 Document 創建了相同的 _id ?

當然是不可能的。

GUID 算法可以保證在分布式的環境下,不同節點同一時間創建的 _id 一定是不沖突的(即使是同一個節點,也不會有任何的問題)。

Elasticsearch 自動生成 _id 的機制,可以保證不會出現兩個不同的 Document 的 _id 是一樣的。

注意,自動生成 ID 的時候,使用的是 POST 而不是 PUT;手動生成 ID 的時候使用 PUT 或者 POST 都可以。

另外,這一節的實際操作,我是在 cloud.elastic.co 提供的虛擬機上進行的。其實在準備認證期間,我覺得可以考慮購買兩個月左右的服務;也可以考慮在阿里云上購買。

自動生成的id,長度為20個字符,URL安全,base64編碼,GUID,分布式系統并行生成時不可能會發生沖突。

上述內容就是Elasticsearch document id 生成方式是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延吉市| 乐业县| 安庆市| 合作市| 铅山县| 西宁市| 犍为县| 衢州市| 白山市| 缙云县| 张北县| 自治县| 宝清县| 台江县| 临邑县| 齐齐哈尔市| 临海市| 资阳市| 香河县| 泰来县| 卢氏县| 峨眉山市| 珠海市| 东城区| 瑞金市| 海宁市| 东明县| 泾源县| 沙湾县| 日土县| 永寿县| 临清市| 阿拉尔市| 贵港市| 胶南市| 孝昌县| 玉溪市| 专栏| 芮城县| 马尔康县| 泽州县|