基本操作

链接

文档操作

  • create

自动创建id:
POST test_employee/_doc{ "name":"朱试验2", "age":33, "gender": "高级测试"}
指定id:
POST test_employee/_create/1 { "name":"朱试验2", "age":33, "gender": "高级测试"}

  • get

GET test_employee/_doc/1
返回体:
{
"_index" : "test_employee", 索引
"_type" : "_doc", type
"_id" : "_doc", id
"_version" : 1, 文档版本:每次更新都会递增
"_seq_no" : 3,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "朱试验",
"age" : 33,
"gender" : "高级测试"
}
}
_version: 该文档的版本,每次操作该文档都会递增
_seq_no:严格递增的顺序号,每个文档一个,Shard级别严格递增,保证后写入的Doc的_seq_no大于先写入的Doc的_seq_no,任何类型的写操作,包括index、create、update和Delete,都会生成一个_seq_no
_primary_term:_primary_term也和_seq_no一样是一个整数,每当Primary Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1,_primary_term主要是用来恢复数据时处理当多个文档的_seq_no一样时的冲突,避免Primary Shard上的写入被覆盖。

  • Index

POST test_employee/_doc/1
如果文档不存在,就索引进新的文档,否则删除现有的文档,版本号+1

  • update

数据更新
POST test_employee/_update/1
{ "doc":{ "name":"张更新"}}

  • delete

delete test_employee/_doc/1

批量

  • Bulk API

支持在一次API调用中,对不同的索引进行操作,支持四种操作类型:Index、Create、Update、Delete。操作中单条操作报错并不影响其他操作
POST _bulk { "index" : { "_index" : "test", "_id" : "1" } } { "field1" : "value1" } fied:index、create操作所需{ "delete" : { "_index" : "test", "_id" : "2" } } { "create" : { "_index" : "test", "_id" : "3" } } { "field1" : "value3" } { "update" : {"_id" : "1", "_index" : "test"} } { "doc" : {"field2" : "value2"} } doc:更新操作所需

  • mget

**GET test_employee/_mget{ **
**"docs":[ **
**{"_id":"1"}, **
**{"_id":"2"}, **
**{"_id":"3"} **
**]}**
**GET _mget{ **
**"docs": [ **
**{"_index": "s_test","_id":2}, **
**{"_index": "test_employee","_id":1} **
**]}**

  • msearch

header中可以指定查询的index,查询类型search_type(query_then_fetch(默认):使用本地术语和分片的文档频率对文档评分。这通常更快,但准确性较低,dfs_query_then_fetch:使用全局术语和所有分片上的文档频率对文档评分。通常这比较慢,但更准确 )
**GET my-index-000001/_msearch { }** —header**{"query" : {"match" : { "message": "this is a test"}}}** —body**{"index": "my-index-000002","search_type":"query_then_fetch"}** —header**{"query" : {"match_all" : {}}}** —body