转载

Elasticsearch(结构)

查看集群健康状态

GET /_cluster/health

 添加索引

PUT /blogs
{
  "settings" : {
  "number_of_shards" : 3,
  "number_of_replicas" : 1
  }
}


为已存在的索引添加副本
PUT /blogs/_settings
{
  "number_of_replicas" : 2
}

元数据(metadata)

_index    文档存储的地方        必须是小写不能以下划线开头
_type 文档代表的对象类       不能包含下划线,或者逗号
_id    文档的唯一标识        可以自定义,也可以elasticsearch帮你生成

 

检索文档

GET /website/blog/123?pretty       查询指定id的信息


检索某个字段

GET /website/blog/123?_source=title,text 只会列出对应的字段信息title text


只是仅仅检索某个文档是否存在
curl -i -XHEAD http://localhost:9200/website/blog/123 成功就返回 200 的状态码

检索多个文档(减少网络的开销)

GET /_mget
{
    "docs":[
        {
            "_index":"website",
            "_type":"blog",
            "_id":2
        },
        {
            "_index":"website",
            "_type":"pageviews",
            "_id":1,
            "_source":"views"
        }
    ]
}



同时检索多个文档


也可以检索同一个index中的数据

GET /website/blog/_mget
{
    "docs":[
        {
            "_id":2
        },
        {
            "_type":"pageviews",
            "_id":1
        }
    ]
}



如果具有相同的_index和_type,可以通过数据代替
{
  "ids" : [ "2", "1" ]
}


 

更新文档

PUT /website/blog/123
{
    "title": "My first blog entry",
    "text": "I am starting to get the hang of this...",
    "date": "2014/01/02"
}

在相应体中,_version的版本号增加了


文档局部更新

POST /website/blog/1/_update
{
    "doc" : {
    "tags" : [ "testing" ],
    "views": 0
    }
}


向blog插入两个字段doc是文档局部参数, tag和views字段

创建一个新文档

POST /website/blog/        Elasticsearch会自动生成一个唯一的_id
{ ... }


POST /website/blog/1       要自己指定id
{ ... }
 

删除文档

DELETE /website/blog/123      根据id删除文档

并发控制悲观并发控制

悲观并发控制
在读取的时候就锁定这行,然后确保只有加锁的线程可以执行修改操作


乐观并发控制
读写过程中数据发生变化,那么更新操作失败

在elasticsearc中可以使用_version号码,保证所以修改都被正确排序
当我我想修改一个数据的时候
可以先查询出对应的version


然后修改时带上对应的version
PUT /website/blog/1?version=1
{ ... }

成功时返回对应的version会加一,否则就失败

批量操作(单一请求实现多个文档的create,index,update或delete)

bulk请求体

{ action: { metadata }}\n { request body }\n { action: { metadata }}\n { request body }\n ...

action必须是以下行为

create 当文档不存在时创建
index 创建新文档或者替换已有文档
updata 局部更新
delete 删除文档

metadata

    _index

    _type

    _id

{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }} 
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title": "My first blog post" }
{ "index": { "_index": "website", "_type": "blog" }}
{ "title": "My second blog post" }
{ "update": { "_index": "website", "_type": "blog", "_id": "123"}}
{ "doc" : {"title" : "My updated blog post"} } 

 

转载于:https://www.cnblogs.com/xiaotao13725566749/p/8998346.html

正文到此结束
本文目录