索引一个文档
文档通过 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 有 20 个字符长,URL-safe,Base64-encoded string universally unique identifiers,或者叫做 UUIDs。