(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 有 20 个字符长,URL-safe,Base64-encoded string universally unique identifiers,或者叫做 UUIDs。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值