首页 > 其他分享 >28.ElasticSearch进阶

28.ElasticSearch进阶

时间:2023-04-02 22:23:33浏览次数:40  
标签:customer index 进阶 28 blog 文档 external ElasticSearch id

两种查询方式

在将所有的检索条件全部放在url里

GET bank/_search?q=*&sort=account_number:asc    表示在banK索引下查询所有文档根据account_number正序

 

 hits里有10条数据,总数是1000,可以看出ES默认做了分页。

我们以 /_cat/health 为例试一下:

索引一个文档(保存)

保存一条数据到哪个索引的哪个类型下,使用如下命令:

PUT /customer/external/1   在customer索引下的external类型下保存一条id为1的数据
数据可以如下所示:
{
  "name":"BianEn"
}

其实POST和PUT都可以,

POST新增如果不指定id,会自动生成id,指定id会修改这个id数据,并新增版本号。

PUT可以新增可以修改,新增修改都必须指定id,不指定id会报错,我们一般使用PUT的方式。

 我们再修改id为1的数据试试:

查询文档

GET /customer/external/1   查询customer索引下的external类型下id为1的数据

 怎么使用_seq_no来控制并发呢?

?if_seq_no=1   _primary_term也同理,如?if_seq_no=1&if_primary_term


我们模拟两次更新请求,第一次肯定可以,因为上面我们查询了_seq_no就是1,第二次请求肯定失败了,因为被第一次改了_seq_no的值会变化不再是1:

第一次:成功

第二次:失败

更新文档

除了前面新建文档时候也可以更新文档意外ES还提供了单独更新的接口:

POST /customer/external/1/_update   与新建文档的方式更新文档不同的地方是这个方式更新相同的值version和seq_no都不会增加

{
  "doc":{
       "name":"测试更新"
   }
}
可以看到更新的json数据多了一层doc

删除文档

DELETE /customer/external/1
还可以删除索引 DELETE /customer
但是不支持删除类型


Bulk批量

在索引下的类型下做批量操作

POST  /customer/external/_bulk
{"index":{"_id":"1"}}
{"name":"张三"}
{"index":{"_id":"2"}}
{"name":"李四"}

表示在customer索引下的external类型保存两条文档:(上面这个数据不是个正经的JSON,PostMan就没办法测试了,我们使用Kibana测试)

在整个ES下做批量操作

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"}}

 

标签:customer,index,进阶,28,blog,文档,external,ElasticSearch,id
From: https://www.cnblogs.com/cheng8/p/17281569.html

相关文章

  • 4.28
    CSS下拉菜单<style>.dropdown{position:relative;display:inline-block;}.dropdown-content{display:none;position:absolute;background-color:#f9f9f9;min-width:160px;box-shadow:0px8px16px0pxrgba(0,0,0,0.2);padding:12px......
  • 利民(Thermalright)HR-10 2280 固态硬盘SSD散热器 - 我的硬件配置
    ......
  • Elasticsearch安装(cenOS7)
    一、环境安装安装JDK版本选择:JDK8、11或者14JDK兼容性:https://www.elastic.co/cn/support/matrix#matrix_jvm 操作系统兼容性:https://www.elastic.co/cn/support/matrix 自身兼容性:https://www.elastic.co/cn/support/matrix#matrix_compatibility Elasticsearch环境下载地址:htt......
  • elasticsearch的基本用法
    什么是elasticsearchElasticsearch是一个开源的分布式全文搜索引擎,它可以快速地存储、搜索和分析海量数据。它采用了Lucene搜索引擎库,提供了简单易用的RESTfulAPI接口,支持近实时搜索和分析功能,被广泛应用于企业搜索、日志分析、数据挖掘、安全检测等领域。我们可以使用Elastics......
  • 20230328 组会学习
    【3DV】RobustRGB-DFusionforSaliencyDetection两个创新点:LWA模块根据深度图和RGB图动态生成融合策略TSA模块解决了RGB图与深度图的对齐问题【ICLR2023】MoreConvNetsinthe2020s:ScalingupKernelsBeyond51×51usingSparsity两个创新点:采用轴......
  • Elasticsearch 学习-面试题目
    Elasticsearch学习-面试题目第7章Elasticsearch面试题7.1为什么要使用Elasticsearch?系统中的数据,随着业务的发展,时间的推移,将会非常多,而业务中往往采用模糊查询进行数据的搜索,而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查......
  • elasticsearch实践篇:跨表join查询
    随着业务发展跨表join查询需求越来越多,系统的慢查询不断报出,引入ElasticSearch来实现聚合查询势在必行。ES是一个基于Lucene的搜索引擎,通过将业务主表及辅表的索引字段及需要like字段同步到ES里,每张表的索引字段最终汇总成一个联合索引,来实现多个表的跨表搜索。性能要求检索需求......
  • Elasticsearch 学习-Elasticsearch优化,硬件选择,分片策略,写入优化,内存设置,重要配置
    Elasticsearch学习-Elasticsearch优化,硬件选择,分片策略,写入优化,内存设置,重要配置6.1硬件选择Elasticsearch的基础是Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体的路径可在ES的配置文件../config/elasticsearch.yml中配置,如下:#----------------------------......
  • Elasticsearch 学习- 分片原理,倒排索引,文档搜索,文档分析,内置分析器,指定分词器,IK分词器
    Elasticsearch学习-分片原理4.6分片原理​ 分片是Elasticsearch最小的工作单元。但是究竟什么是一个分片,它是如何工作的?​ 传统的数据库每个字段存储单个值,但这对全文检索并不够。文本字段中的每个单词需要被搜索,对数据库意味着需要单个字段有索引多值的能力。最好的支......
  • Elasticsearch 学习-Elasticsearch进阶-索引,文档,字段,映射,分片,副本,分配,系统架构,分片控
    Elasticsearch学习-Elasticsearch进阶4.1核心概念4.1.1索引(Index)​ 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个......