Es初步检索命令(下)

简介: Es初步检索命令

3、查询文档

GET customer/external/1

http://192.168.107.129:9200/customer/external/1

响应

{
"_index": "customer", //在哪个索引
"_type": "external",  //在哪个类型
"_id": "1", //记录 id
"_version": 2,  //版本号
"_seq_no": 1, //并发控制字段,每次更新就会+1,用来做乐观锁
"_primary_term": 1, //同上,主分片重新分配,如重启,就会变化"found": true,
"_source": {  //真正的内容
"name": "John Doe"
            }
}

更新携带 ?if_seq_no=0&if_primary_term=1  

if_seq_no=0乐观锁的版本号,当不符合版本号的时候报409

{
    "error": {
        "root_cause": [
            {
                "type": "version_conflict_engine_exception",
                "reason": "[1]: version conflict, required seqNo [6], primary term [5]. current document has seqNo [7] and primary term [5]",
                "index_uuid": "Bdd3svLfS9ioGHqqBnxzdQ",
                "shard": "0",
                "index": "customer"
            }
        ],
        "type": "version_conflict_engine_exception",
        "reason": "[1]: version conflict, required seqNo [6], primary term [5]. current document has seqNo [7] and primary term [5]",
        "index_uuid": "Bdd3svLfS9ioGHqqBnxzdQ",
        "shard": "0",
        "index": "customer"
    },
    "status": 409
}

4、更新文档

带_update或put更新的post请求

POST customer/external/1/_update

{
     "doc":{ 
             "name": "John123"
          }
}

b2973e2796454afb973964f4b55fd522.png

响应 :

{
    "_index": "customer",
    "_type": "external",
    "_id": "1",
    "_version": 5,
    "result": "updated",//注意这个地方是updated的更新
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 8,
    "_primary_term": 5
}

json内容不变再一次发送响应:

{
    "_index": "customer",
    "_type": "external",
    "_id": "1",
    "_version": 7,
    "result": "noop",//再一次发送的时候不是更新了
    "_shards": {
        "total": 0,
        "successful": 0,
        "failed": 0
    },
    "_seq_no": 10,
    "_primary_term": 5
}

post带_update对比原来的数据,与原来的一样什么都不做version和sql_no也不会改变

不带_update或put更新的post请求

POST customer/external/1

{ 
    "name": "John Doe2"
}

不会去比对信息

PUT customer/external/1

同理

总结

不同:POST 操作会对比源文档数据,如果相同不会有什么操作,文档 version 不增加


PUT 操作总会将数据重新保存并增加 version 版本;


               带_update 对比元数据如果一样就不进行任何操作。


       看场景;


               对于大并发更新,不带 update;


               对于大并发查询偶尔更新,带 update;对比更新,重新计算分配规则


更新同时增加属性

POST customer/external/1/_update

1. {
2.      "doc": { "name": "Jane Doe", "age": 20 }
3. }

PUT 和 POST 不带_update 也可以

5、删除文档&索引

DELETE customer/external/1

响应:

{
    "_index": "customer",
    "_type": "external",
    "_id": "1",
    "_version": 8,
    "result": "deleted",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 11,
    "_primary_term": 5
}

DELETE customer

响应

1. {
2.     "acknowledged": true
3. }


不存在删除类型type的玩意

6、bulk 批量 API

POST customer/external/_bulk
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }

1f715f50b9244c04bf8fe733960e904a.png

语法格式:
{ action: { metadata }}\n
{ request body }\n
{ action: { metadata }}\n
{ request body }\n

复杂的例子:

POST /_bulk
{ "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"} }

a25ee812967e4cbda11adab3f2b48388.png

响应

#! Deprecation: [types removal] Specifying types in bulk requests is deprecated.
{
  "took" : 137,
  "errors" : false,
  "items" : [
    {
      "delete" : {
        "_index" : "website",
        "_type" : "blog",
        "_id" : "123",
        "_version" : 1,
        "result" : "not_found",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 0,
        "_primary_term" : 1,
        "status" : 404
      }
    },
    {
      "create" : {
        "_index" : "website",
        "_type" : "blog",
        "_id" : "123",
        "_version" : 2,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 1,
        "_primary_term" : 1,
        "status" : 201
      }
    },
    {
      "index" : {
        "_index" : "website",
        "_type" : "blog",
        "_id" : "5ycmXYUB7T24Ga4RRRSB",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 2,
        "_primary_term" : 1,
        "status" : 201
      }
    },
    {
      "update" : {
        "_index" : "website",
        "_type" : "blog",
        "_id" : "123",
        "_version" : 3,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 3,
        "_primary_term" : 1,
        "status" : 200
      }
    }
  ]
}
相关文章
|
前端开发 API
ES 高级实战(四)查询 ES 数据
ES 高级实战(四)查询 ES 数据
1402 0
ES 高级实战(四)查询 ES 数据
|
1月前
|
存储 JSON 自然语言处理
es索引文档过程
Elasticsearch 索引文档流程:先通过 REST API 或客户端创建索引,定义文档结构的映射;接着索引 JSON 格式的文档,Elasticsearch 解析、索引并存储;最后,文档以倒排索引形式存储,支持高效全文搜索。
43 5
|
6月前
|
缓存 索引
kibana上执行ES DSL语言查询数据并查看表结构与数据、删除索引、查看文件大小
kibana上执行ES DSL语言查询数据并查看表结构与数据、删除索引、查看文件大小
304 0
|
8月前
|
存储 Unix 索引
ES常用查询命令
ES常用查询命令
|
SQL
白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤
白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤
130 0
|
测试技术 索引
ES数据删除优化
分享一下ES数据删除优化的相关经历,根据业务需要一共优化了3次,包含了其中踩到的坑和一些花时间解决的问题.
1125 0
|
SQL JSON 自然语言处理
ElasticSearch中DSL高级检索(Query)
ElasticSearch中DSL高级检索(Query) es分布式搜索引擎 作用:搜索 全文检索 ES官方提供了两中检索方式:一种是通过 URL 参数进行搜索,另一种是通过 DSL(Domain Specified Language) 进行搜索``。``官方更推荐使用第二种方式第二种方式是基于传递JSON作为请求体(request body)格式与ES进行交互,这种方式更强大,更简洁``。
269 0
ElasticSearch中DSL高级检索(Query)
|
SQL JSON 自然语言处理
|
存储 自然语言处理 搜索推荐
【es】elasticsearch/es搜索服务器介绍
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
743 0
【es】elasticsearch/es搜索服务器介绍

热门文章

最新文章