常用查询
- 关闭服务
curl -XPOST 'http://localhost:9200/_shutdown'
- 查询集群健康
GET /_cluster/health
- 修改复制分片的数量
PUT /blogs/_settings
{
"number_of_replicas" : 2 }
- 创建索引并设置分片数
//分配3个主分片和一个复制分片(每个主分片都有一个复制分片)
PUT /blogs
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1 } }
- 计算集群中的文档数量
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {} } } '
- 添加
POST /megacorp/employee/2
{
"first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "睡觉" ] } //自定义id创建 //方式一 PUT /megacorp/employee/123?op_type=create { "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "睡觉" ] } //方式二 PUT /megacorp/employee/123/_create { "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "睡觉" ] }
- 修改
PUT /megacorp/employee/2
{
"first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "吃桃" ] } //自定义版本号修改 PUT /website/blog/2?version=5&version_type=external { "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "吃桃" ] } //自增修改字段 //?retry_on_conflict=5当出现版本冲突时的重试次数 POST /megacorp/employee/5/_update?retry_on_conflict=5 { "script": "ctx._source.age+=1", "upsert": { "age": 0 } }
- 删除
DELETE /megacorp/employee/2
简单搜索查询
//按id查询
GET /megacorp/employee/1
//按id查询格式化 GET /megacorp/employee/1?pretty //只返回_source部分字段 GET /megacorp/employee/1?_source=first_name,age //只返回_source字段而不要其他的元数据 GET /megacorp/employee/1/_source //搜索全部 GET /megacorp/employee/_search //查询字符串 GET /megacorp/employee/_search?q=last_name:Smith
- 批量查询mget
合并多个请求可以避免每个请求单独的网络开销
//不同的index查询
POST /_mget
{
"docs": [
{
"_index": "myblog", "_type": "mb_articles", "_id": 2 }, { "_index": "megacorp", "_type": "employee", "_id": 5 } ] } //同一个type查询 POST /megacorp/employee/_mget { "docs": [ { "_id": 5 }, { "_id": 1 } ] } 或者 POST /megacorp/employee/_mget { "ids": [ "2", "1" ] }
- 批量更新 bulk
格式:
这种格式类似于用"\n"符号连接起来的一行一行的JSON文档流(stream)。两个重要的点需要注意:
- 1、每行必须以"\n"符号结尾,包括最后一行。这些都是作为每行有效的分离而做的标记。
- 2、每一行的数据不能包含未被转义的换行符,它们会干扰分析——这意味着JSON不能被美化打印
{ action: { metadata }}\n { request body }\n { action: { metadata }}\n { request body }\n ...
- action:
行为 | 解释 |
---|---|
create | 当文档不存在时创建之 |
index | 创建新文档或替换已有文档 |
update | 局部更新文档 |
delete | 删除一个文档 |
POST /_bulk
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }} { "title": "My first blog post" } { "index": { "_index": "website", "_type": "blog" }} { "title": "My second blog post" }