(9)Elasticsearch 使用自增 id 或者是自己的 id 去索引一個文件
阿新 • • 發佈:2019-01-01
索引一個文件
文件通過 index API 被索引 —— 使資料可以被儲存和搜尋。但是首先我們需要確定文件所在。正如我們前面談論的,文件通過其 _index、_type、_id 唯一確定。
我們可以自己提供一個 _id ,或者也可以使用 index API 為我們生成一個。
使用自己的 ID
如果你的文件有自然的識別符號號(例如 user_account 欄位),就可以提供自己的_id,使用這種格式的 index API:
PUT /{index}/{type}/{id}
{
"field":"value",
...
}
例如我們的索引叫做 “website” ,型別叫做 “blog” ,我們選擇的 ID 是”123”,那麼這個索引請求就像這樣:
curl -X PUT "192.168.0.202:9200/website/blog/123" -H 'Content-Type: application/json' -d'
{
"title":"My first blog entry",
"text":"Just trying this out ...",
"date":"2014/01/01"
}
'
es的響應:
這個應該是我之前建立過 …
響應指出請求的索引已經被成功建立(本次是更新),這個索引裡面包含 _index,_type 和 _id 資料,以及一個新元素 _version.
es 中的每個文件都有版本號,每當文件變化(包括刪除) 都會使 _version 增加。
自增ID
如果我們的資料沒有自然 ID,我們可以讓es自動為我們生成,請求結構發生了變化:PUT方法——“在這個url中儲存文件”變成了POST方法——“在這個文件下儲存文件”。(原來是把文件儲存到某個ID對應的空間,現在是把這個文件新增到某個 _type 下)
URL 現在只包含 _index 和 _type 兩個欄位:
響應與第一次類似,只有 _id 欄位變成了自動生成的值
自動生成的 ID 有22個字元長,URL-safe,Base64-encoded string universally unique identifiers,或者叫做 UUIDs。