基本操作
文档操作
- 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
批量
- 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