共计 6489 个字符,预计需要花费 17 分钟才能阅读完成。
[toc]
一. 数据筹备
当初有上面几个 index:books,my_index, users
1.books 索引内容:
_index | _type | _id | ▲_score | bookId | bookName | author | |
---|---|---|---|---|---|---|---|
books | _doc | 1 | 1 | 1 | Thinking in Java | Bruce Eckel | |
books | _doc | 2 | 1 | 2 | 中国通史 | 吕思勉 | |
books | _doc | 3 | 1 | 3 | 中国通史 | 吕思勉 | |
books | _doc | NCvOY4ABRxSL2QPxNNHf | 1 | 4 | 中国通史 4 | 吕思勉 | |
books | _doc | NSvOY4ABRxSL2QPxPdEy | 1 | 4 | 中国通史 4 | 吕思勉 | |
books | _doc | NivOY4ABRxSL2QPxQdEo | 1 | 4 | 中国通史 4 | 吕思勉 | |
books | _doc | NyvOY4ABRxSL2QPxRNHC | 1 | 4 | 中国通史 4 | 吕思勉 | |
books | _doc | OCvOY4ABRxSL2QPxSdHA | 1 | 4 | 中国通史 4 | 吕思勉 | |
books | _doc | OSvOY4ABRxSL2QPxTNHb | 1 | 4 | 中国通史 4 | 吕思勉 | |
books | _doc | OivOY4ABRxSL2QPxYNGs | 1 | 4 | 鲁迅散文 | 鲁迅 |
2. my_index 索引内容:
_index | _type | _id | _score | firstName | lastName |
---|---|---|---|---|---|
my_index | _doc | 1 | 1 | nie | wj |
my_index | _doc | 2 | 1 |
3.users 索引内容
_index | _type | _id | _score | name | age | gender | birth |
---|---|---|---|---|---|---|---|
users | _doc | 1 | 1 | niewj | 36 | male | 1985-01-01 |
users | _doc | 2 | 1 | nie | 26 | female | 1995-02-02 |
users | _doc | 3 | 1 | lifubo | 33 | male | |
users | _doc | 4 | 1 | weibinbin | 32 | male |
二、bulk、mget、msearch 的 API 测试 demo
1. bulk 执行多个索引的 index/create/update/delete
1.1 测试执行需要
- users 中的 gender 改为 ”male”;
- my_index 中减少 ” 张大千 ” 应用 index;” 李太白, 杜甫 ” 的两条记录应用 create
- books 中删除 bookId= 4 的记录
1.2 执行脚本
POST _bulk | |
{"delete":{"_index":"books","_id":"NSvOY4ABRxSL2QPxPdEy"}} | |
{"delete":{"_index":"books","_id":"NivOY4ABRxSL2QPxQdEo"}} | |
{"delete":{"_index":"books","_id":"NyvOY4ABRxSL2QPxRNHC"}} | |
{"delete":{"_index":"books","_id":"OCvOY4ABRxSL2QPxSdHA"}} | |
{"delete":{"_index":"books","_id":"OSvOY4ABRxSL2QPxTNHb"}} | |
{"delete":{"_index":"books","_id":"OivOY4ABRxSL2QPxYNGs"}} | |
{"delete":{"_index":"books","_id":"NCvOY4ABRxSL2QPxNNHf"}} | |
{"index":{"_index":"my_index","_id":"3"}} | |
{"firstName":"张","lastName":"大千"} | |
{"create":{"_index":"my_index","_id":"4"}} | |
{"firstName":"李","lastName":"太白"} | |
{"create":{"_index":"my_index","_id":"5"}} | |
{"firstName":"杜","lastName":"甫"} | |
{"update":{"_index":"users","_id":"2"}} | |
{"doc":{"gender":"male"}} |
1.3 留神 delete 不能间接指定:bookId:4
1.4 执行后果:
{ | |
"took" : 68, | |
"errors" : false, | |
"items" : [ | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "NSvOY4ABRxSL2QPxPdEy", | |
"_version" : 2, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 12, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "NivOY4ABRxSL2QPxQdEo", | |
"_version" : 2, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 13, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "NyvOY4ABRxSL2QPxRNHC", | |
"_version" : 2, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 14, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "OCvOY4ABRxSL2QPxSdHA", | |
"_version" : 2, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 15, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "OSvOY4ABRxSL2QPxTNHb", | |
"_version" : 2, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 16, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "OivOY4ABRxSL2QPxYNGs", | |
"_version" : 2, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 17, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"delete" : { | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "NCvOY4ABRxSL2QPxNNHf", | |
"_version" : 3, | |
"result" : "deleted", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 18, | |
"_primary_term" : 1, | |
"status" : 200 | |
} | |
}, | |
{ | |
"index" : { | |
"_index" : "my_index", | |
"_type" : "_doc", | |
"_id" : "3", | |
"_version" : 1, | |
"result" : "created", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 3, | |
"_primary_term" : 1, | |
"status" : 201 | |
} | |
}, | |
{ | |
"create" : { | |
"_index" : "my_index", | |
"_type" : "_doc", | |
"_id" : "4", | |
"_version" : 1, | |
"result" : "created", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 4, | |
"_primary_term" : 1, | |
"status" : 201 | |
} | |
}, | |
{ | |
"create" : { | |
"_index" : "my_index", | |
"_type" : "_doc", | |
"_id" : "5", | |
"_version" : 1, | |
"result" : "created", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 5, | |
"_primary_term" : 1, | |
"status" : 201 | |
} | |
}, | |
{ | |
"update" : { | |
"_index" : "users", | |
"_type" : "_doc", | |
"_id" : "2", | |
"_version" : 10, | |
"result" : "updated", | |
"_shards" : { | |
"total" : 2, | |
"successful" : 1, | |
"failed" : 0 | |
}, | |
"_seq_no" : 15, | |
"_primary_term" : 4, | |
"status" : 200 | |
} | |
} | |
] | |
} |
1.5 执行完后果:users
_index | _type | _id | _score | firstName | lastName |
---|---|---|---|---|---|
my_index | _doc | 1 | 1 | nie | wj |
my_index | _doc | 2 | 1 | ||
my_index | _doc | 3 | 1 | 张 | 大千 |
my_index | _doc | 4 | 1 | 李 | 太白 |
my_index | _doc | 5 | 1 | 杜 | 甫 |
1.6 执行完后果:my_index
_index | _type | _id | _score | name | age | gender | birth |
---|---|---|---|---|---|---|---|
users | _doc | 1 | 1 | niewj | 36 | male | 1985-01-01 |
users | _doc | 3 | 1 | lifubo | 33 | male | |
users | _doc | 4 | 1 | weibinbin | 32 | male | |
users | _doc | 2 | 1 | nie | 26 | male | 1995-02-02 |
1.7 执行完后果:books
_index | _type | _id | ▲_score | bookId | bookName | author | |
---|---|---|---|---|---|---|---|
books | _doc | 1 | 1 | 1 | Thinking in Java | Bruce Eckel | |
books | _doc | 2 | 1 | 2 | 中国通史 | 吕思勉 | |
books | _doc | 3 | 1 | 3 | 中国通史 | 吕思勉 |
2. mget:get 多个索引中的文档
2.1 mget 的脚本
GET _mget | |
{"docs":[{"_index":"users","_id":"1"}, | |
{"_index":"books","_id":"1"}, | |
{"_index":"my_index","_id":"1"} | |
] | |
} |
2.2 mget 后果:
{ | |
"docs" : [ | |
{ | |
"_index" : "users", | |
"_type" : "_doc", | |
"_id" : "1", | |
"_version" : 1, | |
"_seq_no" : 12, | |
"_primary_term" : 4, | |
"found" : true, | |
"_source" : { | |
"name" : "niewj", | |
"age" : 36, | |
"gender" : "male", | |
"birth" : "1985-01-01" | |
} | |
}, | |
{ | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "1", | |
"_version" : 2, | |
"_seq_no" : 1, | |
"_primary_term" : 1, | |
"found" : true, | |
"_source" : { | |
"bookId" : "1", | |
"bookName" : "Thinking in Java", | |
"author" : "Bruce Eckel" | |
} | |
}, | |
{ | |
"_index" : "my_index", | |
"_type" : "_doc", | |
"_id" : "1", | |
"_version" : 1, | |
"_seq_no" : 0, | |
"_primary_term" : 1, | |
"found" : true, | |
"_source" : { | |
"firstName" : "nie", | |
"lastName" : "wj" | |
} | |
} | |
] | |
} |
3.msearch 批量查问多个索引
3.1 查问多个索引的多个条件(缩小 IO 次数)
POST _msearch | |
{"index":"movies"} | |
{"query":{"match_all":{}},"from":0,"size":3} | |
{"index":"users"} | |
{"query":{"match_phrase":{"name.keyword":"nie"}}} | |
{"index":"books"} | |
{"query":{"match":{"bookName":"中国通史"}}} |
3.2 查问后果
{ | |
"took" : 0, | |
"responses" : [ | |
{ | |
"took" : 0, | |
"timed_out" : false, | |
"_shards" : { | |
"total" : 1, | |
"successful" : 1, | |
"skipped" : 0, | |
"failed" : 0 | |
}, | |
"hits" : { | |
"total" : { | |
"value" : 9743, | |
"relation" : "eq" | |
}, | |
"max_score" : 1.0, | |
"hits" : [ | |
{ | |
"_index" : "movies", | |
"_type" : "_doc", | |
"_id" : "982", | |
"_score" : 1.0, | |
"_source" : { | |
"id" : "982", | |
"genre" : ["Drama"], | |
"title" : "Picnic", | |
"@version" : "1", | |
"year" : 1955 | |
} | |
}, | |
{ | |
"_index" : "movies", | |
"_type" : "_doc", | |
"_id" : "984", | |
"_score" : 1.0, | |
"_source" : { | |
"id" : "984", | |
"genre" : [ | |
"Comedy", | |
"Drama" | |
], | |
"title" : "Pompatus of Love, The", | |
"@version" : "1", | |
"year" : 1996 | |
} | |
}, | |
{ | |
"_index" : "movies", | |
"_type" : "_doc", | |
"_id" : "986", | |
"_score" : 1.0, | |
"_source" : { | |
"id" : "986", | |
"genre" : [ | |
"Adventure", | |
"Children" | |
], | |
"title" : "Fly Away Home", | |
"@version" : "1", | |
"year" : 1996 | |
} | |
} | |
] | |
}, | |
"status" : 200 | |
}, | |
{ | |
"took" : 0, | |
"timed_out" : false, | |
"_shards" : { | |
"total" : 1, | |
"successful" : 1, | |
"skipped" : 0, | |
"failed" : 0 | |
}, | |
"hits" : { | |
"total" : { | |
"value" : 1, | |
"relation" : "eq" | |
}, | |
"max_score" : 0.87546873, | |
"hits" : [ | |
{ | |
"_index" : "users", | |
"_type" : "_doc", | |
"_id" : "2", | |
"_score" : 0.87546873, | |
"_source" : { | |
"name" : "nie", | |
"age" : 26, | |
"gender" : "male", | |
"birth" : "1995-02-02" | |
} | |
} | |
] | |
}, | |
"status" : 200 | |
}, | |
{ | |
"took" : 0, | |
"timed_out" : false, | |
"_shards" : { | |
"total" : 1, | |
"successful" : 1, | |
"skipped" : 0, | |
"failed" : 0 | |
}, | |
"hits" : { | |
"total" : { | |
"value" : 2, | |
"relation" : "eq" | |
}, | |
"max_score" : 1.8126037, | |
"hits" : [ | |
{ | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "2", | |
"_score" : 1.8126037, | |
"_source" : { | |
"bookId" : "2", | |
"bookName" : "中国通史", | |
"author" : "吕思勉" | |
} | |
}, | |
{ | |
"_index" : "books", | |
"_type" : "_doc", | |
"_id" : "3", | |
"_score" : 1.8126037, | |
"_source" : { | |
"bookId" : "3", | |
"bookName" : "中国通史", | |
"author" : "吕思勉" | |
} | |
} | |
] | |
}, | |
"status" : 200 | |
} | |
] | |
} |
每个索引的查问都返回了本人的后果
正文完
发表至: elasticsearch
2022-04-26