1. 程式人生 > >(9)Elasticsearch 使用自增 id 或者是自己的 id 去索引一個文件

(9)Elasticsearch 使用自增 id 或者是自己的 id 去索引一個文件

索引一個文件

文件通過 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。