创建索引
put wsh_index
增加文档
put /wsh_index/_doc/1
{
"name": "wsh",
"year": "27",
"light": 173,
"weight":130
}
增加成功
如果增加文档时,在 Elasticsearch 中如果有相同 ID 的文档存在,则更新此文档
year由字符串改为数值类型
put /wsh_index/_doc/1
{
"name": "wsh",
"year": 27,
"light": 173,
"weight":130
}
查询文档
get wsh_index/_doc/1
wsh_index 是索引名称
_doc是映射类型
1是文档的id
文档的id
当创建文档的时候,如果不指定 ID,系统会自动创建 ID。自动生成的 ID 是一个不会重复的随机数。使用 GUID 算法,可以保证在分布式环境下,不同节点同一时间创建的_id 一定是不冲突的。
执行命令
post /wsh_index/_doc
{
"message":"Hello,My name is wsh!"
}
更新文档
之前我使用了put方法更新了已经存在的文档,将之整个替换了。如果我只想更新其中一个字段的话,就要使用_update接口
执行命令
post /wsh_index/_update/1
{
"doc":{
"birthday": "1993.3.3"
}
}
数据由
变成了
如果文档里存在birthday字段就是更新这个字段,不存在就会新增这个字段并设置值。
update 接口在文档不存在时提示错误。
如果希望在文档不存在时创建文档,则可以在请求中添加 upsert 参数或 doc_as_upsert 参数。
POST /wsh_index/_update/2
{
"doc": { "birthday": "2002.02.02" },
"upsert":{
"name" : "Enjoyedu Framework",
"corp" : "enjoyedu "
}
}
POST /wsh_index/_update/4
{
"doc": { "year": "2020" },
"doc_as_upsert" : true
}
upsert 参数定义了创建新文档使用的文档内容,而 doc_as_upsert 参数的含义是直接使用 doc 参数中的内容作为创建文档时使用的文档内容。
删除文档
使用delete
delete /wsh_index/_doc/1