文章目录

  • 下载 Kibana 镜像
  • 启动 Kibana 容器
  • 索引、分片和副本
    • 索引
    • 索引分片
    • 索引副本
    • 创建索引
  • 映射(数据结构)
    • 字段的数据类型
    • 创建映射
    • 查看映射
  • 添加文档
  • 修改文档 - 替换
  • 删除 products 索引

下载 Kibana 镜像

docker pull kibana:7.9.3

启动 Kibana 容器

docker run \
-d \
--name kibana \
--net es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS='["http://node1:9200","http://node2:9200","http://node3:9200"]' \
--restart=always \
kibana:7.9.3

启动后,浏览器访问 Kibana,进入 Dev Tools
http://192.168.64.181:5601/

索引、分片和副本

索引

Elasticsearch索引用来存储我们要搜索的数据,以倒排索引结构进行存储。

例如,要搜索商品数据,可以创建一个商品数据的索引,其中存储着所有商品的数据,供我们进行搜索:

当索引中存储了大量数据时,大量的磁盘io操作会降低整体搜索新能,这时需要对数据进行分片存储。

索引分片

在一个索引中存储大量数据会造成性能下降,这时可以对数据进行分片存储。

每个节点上都创建一个索引分片,把数据分散存放到多个节点的索引分片上,减少每个分片的数据量来提高io性能:

每个分片都是一个独立的索引,数据分散存放在多个分片中,也就是说,每个分片中存储的都是不同的数据。搜索时会同时搜索多个分片,并将搜索结果进行汇总。

如果一个节点宕机分片不可用,则会造成部分数据无法搜索

为了解决这一问题,可以对分片创建多个副本来解决。

索引副本

对分片创建多个副本,那么即使一个节点宕机,其他节点中的副本分片还可以继续工作,不会造成数据不可用:

分片的工作机制:

  1. 主分片的数据会复制到副本分片
  2. 搜索时,以负载均衡的方式工作,提高处理能力
  3. 主分片宕机时,其中一个副本分片会自动提升为主分片

下面我们就以上图的结构来创建 products 索引

创建索引

创建一个名为 products 的索引,用来存储商品数据。

分片和副本参数说明:

我们有三个节点,在每个节点上都创建一个分片。每个分片在另两个节点上各创建一个副本。

# 创建索引,命名为 products
PUT /products
{"settings": {"number_of_shards": 3, "number_of_replicas": 2}
}

用索引名称过滤,查看 products 索引:


粗框为主分片,细框为副本分片

映射(数据结构)

类似于数据库表结构,索引数据也被分为多个数据字段,并且需要设置数据类型和其他属性。

映射,是对索引中字段结构的定义和描述。

字段的数据类型

常用类型:

  • 数字类型:

    • byte、short、integer、long
    • float、double
    • unsigned_long
  • 字符串类型:

    • text : 会进行分词
    • keyword : 不会进行分词,适用于email、主机地址、邮编等
  • 日期和时间类型:

    • date

类型参考:

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html

创建映射

在 products 索引中创建映射。

分词器设置:

查询时,关键词优先使用 search_analyzer 设置的分词器,如果 search_analyzer 不存在则使用 analyzer 分词器。

# 定义mapping,数据结构
PUT /products/_mapping
{"properties": {"id": {"type": "long"},"title": {"type": "text","analyzer": "ik_max_word","search_analyzer": "ik_smart"},"category": {"type": "text","analyzer": "ik_smart","search_analyzer": "ik_smart"},"price": {"type": "float"},"city": {"type": "text","analyzer": "ik_smart","search_analyzer": "ik_smart"},"barcode": {"type": "keyword"}}
}

映射参考:

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

查看映射

GET /products/_mapping

添加文档

添加的文档会有一个名为_id的文档id,这个文档id可以自动生成,也可以手动指定,通常可以使用数据的id作为文档id。

# 添加文档
PUT /products/_doc/10033
{"id":"10033","title":"SONOS PLAY:5(gen2) 新一代PLAY:5无线智能音响系统 WiFi音箱家庭,潮酷数码会场","category":"潮酷数码会场","price":"3980.01","city":"上海","barcode":"527848718459"
}PUT /products/_doc/10034
{"id":"10034","title":"天猫魔盒 M13网络电视机顶盒 高清电视盒子wifi 64位硬盘播放器","category":"潮酷数码会场","price":"398.00","city":"浙江杭州","barcode":"522994634119"
}PUT /products/_doc/10035
{"id":"10035","title":"BOSE SoundSport耳塞式运动耳机 重低音入耳式防脱降噪音乐耳机","category":"潮酷数码会场","price":"860.00","city":"浙江杭州","barcode":"526558749068"
}PUT /products/_doc/10036
{"id":"10036","title":"【送支架】Beats studio Wireless 2.0无线蓝牙录音师头戴式耳机","category":"潮酷数码会场","price":"2889.00","city":"上海","barcode":"37147009748"
}PUT /products/_doc/10037
{"id":"10037","title":"SONOS PLAY:1无线智能音响系统 美国原创WiFi连接 家庭桌面音箱","category":"潮酷数码会场","price":"1580.01","city":"上海","barcode":"527783392239"
}

也可以自动生成 _id 值:

POST /products/_doc
{"id":"10027","title":"vivo X9前置双摄全网通4G美颜自拍超薄智能手机大屏vivox9","category":"手机会场","price":"2798.00","city":"广东东莞","barcode":"541396973568"
}

查看文档:

GET /products/_doc/10037

查看指定文档title字段的分词结果:```
GET /products/_doc/10037/_termvectors?fields=title

[](https://wanght.blog.csdn.net/article/details/109265248)修改文档
==============================================================底层索引数据无法修改,修改数据实际上是先删除再重新添加。两种修改方式:*   PUT:对文档进行完整的替换
*   POST:可以修改一部分字段**修改价格字段的值:**

修改文档 - 替换

PUT /products/_doc/10037
{
“id”:“10037”,
“title”:“SONOS PLAY:1无线智能音响系统 美国原创WiFi连接 家庭桌面音箱”,
“category”:“潮酷数码会场”,
“price”:“9999.99”,
“city”:“上海”,
“barcode”:“527783392239”
}


查看文档:```
GET /products/_doc/10037

修改价格和城市字段的值:

# 修改文档 - 更新部分字段
POST /products/_update/10037
{"doc": {"price":"8888.88","city":"深圳"}
}

查看文档:```
GET /products/_doc/10037

[](https://wanght.blog.csdn.net/article/details/109265248)删除文档
==============================================================

DELETE /products/_doc/10037


清空

POST /products/_delete_by_query
{
“query”: {
“match_all”: {}
}
}

[](https://wanght.blog.csdn.net/article/details/109265248)删除索引
==============================================================

删除 products 索引

DELETE /products


> 可以尝试用不同的分片和副本值来重新创建 products 索引

Elasticsearch(三)使用 Kibana 操作 ES相关推荐

  1. Elasticsearch(三) 使用kibana 操作ES

    文档中包含语句 1,索引(新增 查询 删除) 2, mapping 创建 3,文档(新增,修改,删除,批量新增) 4,文档查询(基本查询,高级查询,分页,高亮,排序) 1,使用kibana 新增 查询 ...

  2. Elasticsearch(一)——Es安装(三个必安工具、安装各种类型分词器)、Es 十大核心概念、通过 Kibana 操作 Es(中文分词、Es各种索引命令操作)

    Elasticsearch(一)--Es安装(三个必安工具.安装各种类型分词器).Es 十大核心概念.通过 Kibana 操作 Es(中文分词.Es各种索引命令操作) 一.Elasticsearch ...

  3. elasticsearch 7.9.3知识归纳整理(二)之 es基本原理及使用kibana操作es的常见命令

    es基本原理及使用kibana操作es的常见命令 一.es的基本原理与基础概念 1.1 倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录.这种索引表中的每一项都包括一个属性值和具有该属性值的 ...

  4. [ElasticSearch] 三种方式进行ES检索评分控制

    一.概要 在使用ES进行搜索时,评分的控制是非常关键的. 而如何对搜索评分进行定制化控制,让其更符合我们想要的评分结果呢? 对boost参数进行控制 通过rescore对查询结果的评分进行二次控制 使 ...

  5. Elasticsearch 7.X SpringBoot 使用 ElasticsearchRestTemplate 操作 ES

    一.ElasticsearchRestTemplate 前面学习了es rest接口对es进行操作的方式,并且还学习了es的分片及扩容,有讲解了几种常见的分词器,喜欢的小伙伴可以看下本专栏的其他文章, ...

  6. ElasticSearch入门简介、安装ES(安装Kibana和IK分词器)使用 Postman连接ES进行测、ESRestAPI(操作索引CRUD操作文档CRUD)、练习

    要理解倒排索引 要能够使用DSL命令操作索引库 要能够使用DSL命令操作文档 要能够使用RestAPI操作索引库.文档 一.ES简介 理解倒排索引的概念和作用 理解es和MySql的区别和使用场景 1 ...

  7. elasticsearch数据备份与恢复(kibana操作)

    一.kibana操作 流程: 创建仓库--->创建策略(自动备份)--->生成快照--->还原 解决: 1.在所有es节点下的elasticsearch.yml中添加以下配置: pa ...

  8. 【ElasticSearch】(四)—— RestClient操作ES

    目录 ​编辑 一.RestClient操作索引 环境搭建 1.导入数据 2.导入项目 3.mapping映射分析 4.初始化RestClient 1)创建索引库 1.代码解读 2.完整示例 2)删除索 ...

  9. ElasticSearch(三)springboot整合ES

    最基础的整合: 一.maven依赖 <parent><groupId>org.springframework.boot</groupId><artifactI ...

  10. Elasticsearch的介绍 以及使用python操作es详细步骤

    一. 什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据.然而对于我们自己的业务数据来 ...

最新文章

  1. Web安全实战训练营
  2. mysql定位前后端问题_Web 前后端分离的意义大吗?
  3. 喜欢的一些话(不断更新)
  4. 电脑rar文件打开方式_新手使用苹果电脑Mac,知道这些让你用起来更舒心。
  5. php安装redis扩展'checking for igbinary includes... configure: error: Cannot find igbinary.h'解决方法...
  6. 苹果新专利曝光,可通过GPS和视觉识别器来识别车辆
  7. 简单实用的带引脚保护的RS232驱动电路
  8. 北理乐学c语言,北京理工大学2018年计算机考研889数据结构考试大纲
  9. Flexsim——初学AGV必看的知识点(如何解决AGV锁死的情况)
  10. 练习 用C语言编写一个程序,解释高等数学中的映射、单射和一一映射,并表示为函数。
  11. 货拉拉 Android 动态资源管理系统原理与实践(下)
  12. 军用无人机数据数据集_无人机和大数据
  13. 《情感分析、挖掘观点、情感和情绪》1
  14. java runnable main_【BUG】”main” prio=5 tid=1 RUNNABLE
  15. ORACLE取当天七点半
  16. Barsetto百胜图BAV02自助咖啡机——星巴克喝多了自助咖啡体验过吗?
  17. 美对华光伏双反复审终裁出炉 贸易变数让厂商第三地外移计划却步
  18. 【深度学习,NLP,LM】Alpaca-Lora ,Colab上部署与调用
  19. 预训练 Bert 【 VilBERT,LXMERT,VisualBERT,Unicoder-VL,VL-BERT,ImageBERT 】--- 记录
  20. 终于,抓到了勒索病毒作者!!

热门文章

  1. 建立U盘免疫病毒文件
  2. 什么是 Hook 技术
  3. 20190303-AJAX教程
  4. 如何在word里插入矢量图
  5. android banner3d,XBanner实现3D画廊效果
  6. Android3D画廊总结整理
  7. linux下面的j2sdk的安装和配置过程!
  8. SQLite3下载与安装
  9. android定义键盘示例(斗地主或跑得快的记牌器)
  10. pdfFactory Pro 不能被安装(AddPrinterDriver 失败)...找不到指定的模块