1.查询指定数据库
--查看第一行,第二行。
GET _mget
{
"docs":[
{"_index":"sspuuser","_id":1},
{"_index":"sspuuser","_id":2}
]
}
{
"docs" : [
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 1,
"name" : "sspu001",
"city" : "广州",
"course" : "oracle",
"teacher" : "王麻子",
"birthdate" : "20200829"
}
},
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "2",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 2,
"name" : "sspu002",
"city" : "深圳",
"course" : "mysql",
"teacher" : "王麻子 2 号",
"birthdate" : "20200826"
}
}
]
}
--查询_id=3/4的文档。
GET /sspuuser/_mget
{
"docs":[{"_id":3},{"_id":3}]
}
{
"docs" : [
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "3",
"_version" : 1,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 3,
"name" : "sspu003",
"city" : "北京",
"course" : "sqlserver",
"teacher" : "王麻子 1号",
"birthdate" : "20200825"
}
},
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "3",
"_version" : 1,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 3,
"name" : "sspu003",
"city" : "北京",
"course" : "sqlserver",
"teacher" : "王麻子 1号",
"birthdate" : "20200825"
}
}
]
}
--指定_id的文档
--查询前4条文档
GET /sspuuser/_mget
{
"ids":[1,2,3,4]
}
{
"docs" : [
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 1,
"name" : "sspu001",
"city" : "广州",
"course" : "oracle",
"teacher" : "王麻子",
"birthdate" : "20200829"
}
},
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "2",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 2,
"name" : "sspu002",
"city" : "深圳",
"course" : "mysql",
"teacher" : "王麻子 2 号",
"birthdate" : "20200826"
}
},
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "3",
"_version" : 1,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 3,
"name" : "sspu003",
"city" : "北京",
"course" : "sqlserver",
"teacher" : "王麻子 1号",
"birthdate" : "20200825"
}
},
{
"_index" : "sspuuser",
"_type" : "_doc",
"_id" : "4",
"_version" : 1,
"_seq_no" : 2,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : 4,
"name" : "sspu004",
"city" : "上海",
"course" : "postgrestsql",
"teacher" : "王麻子 3 号",
"birthdate" : "20200828"
}
}
]
}
2.批量增删改
POST /_bulk
{"delete":{"_index":"test_index","_id":"12"}} --删除时提示: "result" : "not_found",
{"create":{"_index":"test_index","_id":"12"}} --"result" : "created"
{"name":"大哥 1","id":"12","city":"北京","add":"beijing"} --这条未成功。
{"index":{"_index":"test_index","_id":"12"}}
{"name":"replaced 大哥 2","id":"13","city":"成都","age":"18"} --插入成功
{"update":{"_index":"test_index","_id":"12","retry_on_conflict":3}}
{"doc":{"name":"bulk 大哥 3","id":"14"}} --这条更新成功。
--第一条北京:是因为冲突而没有成功。
--第二条成都:是因为允许重试3次而成功。第二次执行时没有上面的"北京"
--第三条id=4:更新操作。
{
"took" : 14,
"errors" : false,
"items" : [
{
"delete" : {
"_index" : "test_index",
"_type" : "_doc",
"_id" : "12",
"_version" : 8,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 8,
"_primary_term" : 1,
"status" : 200
}
},
{
"create" : {
"_index" : "test_index",
"_type" : "_doc",
"_id" : "12",
"_version" : 9,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 9,
"_primary_term" : 1,
"status" : 201
}
},
{
"index" : {
"_index" : "test_index",
"_type" : "_doc",
"_id" : "12",
"_version" : 10,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 10,
"_primary_term" : 1,
"status" : 200
}
},
{
"update" : {
"_index" : "test_index",
"_type" : "_doc",
"_id" : "12",
"_version" : 11,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 11,
"_primary_term" : 1,
"status" : 200
}
}
]
}
--查询
get /test_index/_doc/12
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "12",
"_version" : 19,
"_seq_no" : 19,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "bulk 大哥 3",
"id" : "14",
"city" : "成都",
"age" : "18"
}
}
--冲突重试次数3;
--retry_on_conflict
是一个用于处理并发冲突的参数。当多个客户端同时尝试更新同一文档时,
可能会发生冲突。retry_on_conflict参数允许我们指定在发生冲突时的重试次数。
当设置retry_on_conflict参数时,ES会在发生冲突时自动重试更新操作。
每次重试都会重新获取最新的文档版本,并尝试重新执行更新操作。
通过增加重试次数,我们可以提高解决并发冲突的机会。
在ElasticSearch中,retry_on_conflict参数可以在更新文档的API中使用。
它可以设置为一个整数值,表示重试的次数。
例如,设置retry_on_conflict为3将使ES在发生冲突时最多尝试3次更新操作.
3.批量删除
--xsq3 数据库中有11条数据
get /xsq3/_search
POST _bulk
{"delete":{"_index":"xsq3","_id":10}}
{"delete":{"_index":"xsq3","_id":9}}
{"delete":{"_index":"xsq3","_id":8}}
{
"took" : 9,
"errors" : false,
"items" : [
{
"delete" : {
"_index" : "xsq3",
"_type" : "_doc",
"_id" : "10",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 3,
"_primary_term" : 3,
"status" : 200
}
},
{
"delete" : {
"_index" : "xsq3",
"_type" : "_doc",
"_id" : "9",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 4,
"_primary_term" : 7,
"status" : 200
}
},
{
"delete" : {
"_index" : "xsq3",
"_type" : "_doc",
"_id" : "8",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 4,
"_primary_term" : 3,
"status" : 200
}
}
]
}
--批量删除时只能指定:_ID,而不能指定其他值。
POST _bulk
{"delete":{"_index":"xsq3","city":"成都"}}
{"delete":{"_index":"xsq3","city":"广州"}}
{
"error" : {
"root_cause" : [
{
"type" : "illegal_argument_exception",
"reason" : "Action/metadata line [1] contains an unknown parameter [city]"
}
],
"type" : "illegal_argument_exception",
"reason" : "Action/metadata line [1] contains an unknown parameter [city]"
},
"status" : 400
}
4.批量插入
--批量创建文档。
POST _bulk
{"create":{"_index":"myindex3","_id":"1"}}
{"id": 1, "name": "sspu001", "city": "广州", "course":"oracle", "teacher": "dat哥", "pxdate": "20200729"}
{"create":{"_index":"myindex3","_id":"2"}}
{"id": 2, "name": "sspu002", "city": "深圳", "course":"mysql", "teacher": "dat哥 2 号", "pxdate": "20200726"}
{"create":{"_index":"myindex3","_id":"3"}}
{"id": 3, "name": "sspu003", "city": "北京", "course":"sqlserver", "teacher": "dat哥 3号", "pxdate": "20200725"}
{"create":{"_index":"myindex3","_id":"11"}}
{"id": 11, "name": "sspu011", "city": "上海", "course":"db2", "teacher": "dat哥 4 号", "pxdate": "20200625"}
{
"took" : 386,
"errors" : false,
"items" : [
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1,
"status" : 201
}
},
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "2",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1,
"status" : 201
}
},
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "3",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 2,
"_primary_term" : 1,
"status" : 201
}
},
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "11",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 3,
"_primary_term" : 1,
"status" : 201
}
}
]
}
get myindex3/_search
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"id" : 1,
"name" : "sspu001",
"city" : "广州",
"course" : "oracle",
"teacher" : "dat哥",
"pxdate" : "20200729"
}
},
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"id" : 2,
"name" : "sspu002",
"city" : "深圳",
"course" : "mysql",
"teacher" : "dat哥 2 号",
"pxdate" : "20200726"
}
},
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"id" : 3,
"name" : "sspu003",
"city" : "北京",
"course" : "sqlserver",
"teacher" : "dat哥 3号",
"pxdate" : "20200725"
}
},
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "11",
"_score" : 1.0,
"_source" : {
"id" : 11,
"name" : "sspu011",
"city" : "上海",
"course" : "db2",
"teacher" : "dat哥 4 号",
"pxdate" : "20200625"
}
}
]
}
}
5.批量更新
--update批量更新操作。
POST _bulk
{"update":{"_index":"myindex3","_id":"1"}}
{"doc":{"teacher":"xsq12"}}
{"update":{"_index":"myindex3","_id":"2"}}
{"doc":{"teacher":"xsqw"}}
{"update":{"_index":"myindex3","_id":"3"}}
{"doc":{"teacher":"xsw4"}}
{
"took" : 13,
"errors" : false,
"items" : [
{
"update" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 4,
"_primary_term" : 1,
"status" : 200
}
},
{
"update" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "2",
"_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 5,
"_primary_term" : 1,
"status" : 200
}
},
{
"update" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "3",
"_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 6,
"_primary_term" : 1,
"status" : 200
}
}
]
}
--查询已经更新了指定_ID的文档。
get myindex3/_search
{
"took" : 131,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "11",
"_score" : 1.0,
"_source" : {
"id" : 11,
"name" : "sspu011",
"city" : "上海",
"course" : "db2",
"teacher" : "dat哥 4 号",
"pxdate" : "20200625"
}
},
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"id" : 1,
"name" : "sspu001",
"city" : "广州",
"course" : "oracle",
"teacher" : "xsq12",
"pxdate" : "20200729"
}
},
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"id" : 2,
"name" : "sspu002",
"city" : "深圳",
"course" : "mysql",
"teacher" : "xsqw",
"pxdate" : "20200726"
}
},
{
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"id" : 3,
"name" : "sspu003",
"city" : "北京",
"course" : "sqlserver",
"teacher" : "xsw4",
"pxdate" : "20200725"
}
}
]
}
}
6.指定索引批量创建
POST /myindex3/_bulk
{"create":{"_index":"myindex3","_id":"11"}}
{"id": 11, "name": "sspu001", "city": "广州", "course":"oracle", "teacher": "da哥", "pxdate": "20200729"}
{"create":{"_index":"myindex3","_id":"12"}}
{"id": 12, "name": "sspu002", "city": "深圳", "course":"mysql", "teacher": "da哥 2 号", "pxdate": "20200726"}
{"create":{"_index":"myindex3","_id":"13"}}
{"id": 13, "name": "sspu003", "city": "北京", "course":"sqlserver", "teacher": "da哥3 号", "pxdate": "20200725"}
--一个冲突(ID=11),2两个成功。
{
"took" : 9,
"errors" : true,
"items" : [
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "11",
"status" : 409,
"error" : {
"type" : "version_conflict_engine_exception",
"reason" : "[11]: version conflict, document already exists (current version [1])",
"index_uuid" : "oq87SwCrSySVGiK4pKs2Ug",
"shard" : "0",
"index" : "myindex3"
}
}
},
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "12",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 7,
"_primary_term" : 1,
"status" : 201
}
},
{
"create" : {
"_index" : "myindex3",
"_type" : "_doc",
"_id" : "13",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 8,
"_primary_term" : 1,
"status" : 201
}
}
]
}