0
点赞
收藏
分享

微信扫一扫

第二证券策略:股指预计维持震荡格局 关注金融、工程建设等板块

惠特曼 2024-04-22 阅读 10

一、ES的概念及使用场景
ElasticSearch是一个分布式,高性能、高可用、可伸缩、RESTful 风格的搜索和数据分析引擎。通常作为Elastic Stack的核心来使用

我们通过将ES 和 mysql对比来更好的理解 ES,ES和mysql相关的基本概念的对比表格如下:

ESMySql
字段
文档一行数据
索引数据库

二、基础使用
前面我们已经介绍过了ES 是RESTful 风格的系统,所以我们需要先掌握RESTful 的四个关键词:
PUT(修改),
POST(添加),
DELETE(删除),
GET(查询)。
其中在ES里面PUT和POST的界限并不是很分明,有时候PUT也作为添加

1、索引操作
1)创建一个空索引
如下代码,咱们创建了一个1副本5分片的 test 索引,然后咱们可以在Elasticsearch Head里刷新一下,并查看索引的信息:

PUT /test
{
  "settings": { 
    "number_of_shards": "5", 
    "number_of_replicas": "1"
  } 
}

通过 kibana 中的 dev_tools 操作 ES
在这里插入图片描述
在谷歌浏览器的elasticsearch-head浏览数据
在这里插入图片描述
2)修改副本
咱们如果对刚才创建的索引副本数量不满意,可以进行修改,注意:分片不允许修改。

PUT test/_settings 
{ 
  "number_of_replicas" : "2" 
}

在这里插入图片描述
3)删除索引
当这个索引不想用了,可以进行删除,执行如下命令即可,执行成功后,刷新ElasticSearch Head可以看到刚才创建的ropledata索引消失了:

DELETE /test

2、数据增删改查
1)插入数据
插入数据的时候可以指定id,如果不指定的话,ES会自动帮我们生成。我们以指定id为例,如下代码是我们创建了一个101的文档,创建成功后,可以在Elasticsearch Head的数据浏览模块里看到这些数据,代码及演示如下:

指定id

POST /test/_doc/101
{
  "name": "li",
  "age": 1,
  "say": "hello" 
}

在这里插入图片描述

POST /test/_doc/
{
  "name": "li2",
  "age": 2,
  "say": "hello2" 
}

在这里插入图片描述
可以发现,不指定id后,会自动生成
在这里插入图片描述
2)修改数据
这里大家要特别注意,ES里的文档是不可以修改的,但是可以覆盖,所以ES修改数据本质上是对文档的覆盖。ES对数据的修改分为全局更新和局部更新
全局更新

PUT /test/_doc/101
{ 
  "name": "li11111",
  "age": 1,
  "say": "hello" 
}

可以看到 version +1了
在这里插入图片描述
局部更新

POST /test/_update/101 
{
  "doc":
  {
    "age": 100
  } 
}

这时候我们可以多次去执行上面的局部更新代码,会发现除了第一次执行,后续不管又执行了多少次,version都不再变化,当然如果 age数值变化后再次执行 version还是 +1的
在这里插入图片描述

3)查询数据

GET /test/_doc/vOQs744B_yXDkWv7KG8_

在这里插入图片描述

4)删除数据

DELETE /test/_doc/101

在这里插入图片描述

举报

相关推荐

0 条评论