【ES三周年】高效搜索引擎ElasticSearch介绍
腾讯云 2023-02-19 13:58:58

ElasticSearch

简介

官网:https://www.elastic.co/cn/products/elasticsearch

特点:

高速、扩展性、最相关的搜索结果。分布式 - 节点对外表现对等,每个节点都可以作为入门,加入节点自动负载均衡。JSON - 输入输出格式是 JSON。Restful 风格,一切 API 都遵循 Rest 原则,容易上手。近实时搜索,数据更新在 Elasticsearch 中几乎是完全同步的,数据检索近乎实时。安装方便 - 没有其它依赖,下载后安装很方便,简单修改几个参数就可以搭建集群。支持超大数据:可以扩展到 PB 级别的结构化和非结构化数据。

■Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。


(资料图片仅供参考)

■Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

■Elasticsearch 还是高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。

ElasticSearch信息概览

什么是index,type,doc

■index:索引是文档(Document)的容器,是一类文档的集合,可以理解成我们常用的mysql中的数据库。

■Type 可以理解成mysql中的表。

■Document Index 里面单条的记录称为Document(文档)。等同于mysql中的一行数据。

建库,建表,建字段

■建库脚本

PUT http://127.0.0.1:9200/cunw-share-es-index

就这么一个请求就可以建成一个以cunw-share-es-index为库名的ES数据库索引库;

■建表脚本,建字段

PUT http://127.0.0.1:9200/cunw-share-es-index/sanbu/1

PUT http://127.0.0.1:9200/cunw-share-es-index/sanbu/1{   "name":"大哥",   "sex": "男",   "hight":"180",   "date":"2022-01-01",   "info":"Hello World"}

索引基本创建完成。

什么是mapping

■mapping 是用来定义文档及其字段的存储方式、索引方式的手段,例如利用mapping 来定义以下内容:哪些字段需要被定义为全文检索类型;哪些字段包含number、date类型等格式化时间格式;自定义规则,用于控制动态添加字段的映射。

■mapping是一种简单的数据类型,例如text、keyword、integer、double、boolean、long、date、ip类型。也可以是一种分层的json对象(支持属性嵌套)。也可以是一些不常用的特殊类型,例如geo_point、geo_shape、completion。

■针对同一字段支持多种字段类型可以更好地满足我们的搜索需求,例如一个string类型的字段可以设置为text来支持全文检索,与此同时也可以让这个字段拥有keyword类型来做排序和聚合,另外我们也可以为字段单独配置分词方式,例如"analyzer": "ik_max_word"。从某种意义上来讲,就是表字段类型,int,varchar,date...

为什么要用mapping

提出疑问,修改一个字段的类型:

{  "sanbu": {    "properties": {      "hight": {         "type": "integer"         }      }   }}

为什么不能修改一个字段的type?原因是一个字段的类型修改以后,那么该字段的所有数据都需要重新索引。Elasticsearch底层使用的是lucene库,字段类型修改以后索引和搜索要涉及分词方式等操作。

ElasticSearch 分片,副本

数据分片:

简单来讲就是咱们在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等达到惊人的速度。

实列场景:

假设 IndexA 有2个分片,我们向 IndexA 中插入10条数据 (10个文档),那么这10条数据会尽可能平均的分为5条存储在第一个分片,剩下的5条会存储在另一个分片中。说白了:数据分片其实类似主流关系型数据库的表分区(分表)的概念有点类似。这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索要注意的是分片的数量只能在索引创建前指定,并且索引创建后不能更改。

分片数量设置计算公式:

分片个数是越多越好,还是越少越好了?根据整个索引的数据量来判断。SN(分片数) = IS(索引大小) / 30,当然也要根据能够给ES分配资源的实际情况而定夺。

■数据副本

副本是主分片的拷贝,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。副本分片数,可以动态的修改。增加副本数,还可以在一定程度上提高服务的可用性(读取的吞吐)。

■设置分配,副本脚本代码

PUT /index    {        "settings":{            "number_of_shards" : 3, //指 这个index主分片分布在3个节点上            "number_of_replicas":1  //指 每一个主分片都有一个副本         }    }

■查询写法

es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。

最基本的查询语句,查询所有数据值得注意的是,在请求之前一定确保它是正确的Json。

{    "query": {        "match_all": {}    }}

查询过滤条件关键字

■查询关键字的用法match,term,wildcard,range....

1.match 通过单词字面意思理解是匹配的意思,顾名思义如果匹配到其中的任意字词就会命中,其实就是通过ES默认的ik分词器去做分词查询。

{    "query": {        "match": {       "name":软"    }    }}

2.term 如果匹配到其中所有字词才会命中。

{    "query": {        "match": {       "name":"软"    }    }}

3.wildcard 用法类似mysql的like,注意这里的通配符是*

{    "query": {        "match": {       "name":"*软*"    }    }}

4.range 看到这个词就会想到区间,它的用法类似于mysql的between ..and ..

{    "query": {        "range": {     "height":{     "gt": "150",     "lt": "170"      } }    }}

update,delete语句

■ 根据ID进行单个更新

POST /index/type/_id/_update{   "doc" : {      "publish_date" :"2021-11-10",   }}

■ 根据ID进行单个删除

DELETE /index/type/_id

Elastic 有一条完整的产品线 ELK - Elasticsearch、Logstash、Kibana,前面说的三个就是常说的 ELK 技术栈(开源实时日志分析平台)。Logstash 的作用就是一个数据收集器,将各种格式各种渠道的数据通过它收集解析之后格式化输出到 Elastic Search ,最后再由 Kibana 提供的比较友好的 Web 界面进行汇总、分析、搜索。ELK 内部实际就是个管道结构,数据从Logstash 到 Elastic Search 再到 Kibana 做可视化展示。这三个组件各自也可以单独使用,比如 Logstash 不仅可以将数据输出到 Elastic Search ,也可以到数据库、缓存等。

关于ES的内容还有很多东西等着我们,搭建、分词器、集群、节点角色分配、冷热分离、读写分离等等,后续我们再输出相关详细内容。

Kibana

简介

Kibana 是 Elastic Stack 成员之一,它是一个基于 Node.js 的 Elasticsearch 索引库数据统计工具,可以利用 Elasticsearch 的聚合功能,生成各种图表,如柱形图,线状图,饼;而且还提供了操作 Elasticsearch 索引数据的控制台,并且提供了一定的 API 提示。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便地利用图表、表格及地图对数据进行多元化的分析和呈现。

Kibana 可以使大数据通俗易懂。它很简单,基于浏览器的界面便于您快速创建和分享动态数据仪表板来追踪 Elasticsearch 的实时数据变化。

搭建

搭建 Kibana 非常简单。可以分分钟完成 Kibana 的安装并开始探索 Elasticsearch 的索引数据 ——— 没有代码、不需要额外的基础设施。当前我们公司使用的版本是 5.5.1。

常用模块

■ Discover

Discover 主要是做索引查询,功能非常强大。从发现页可以交互地探索ES的数据。可以访问与所选索引模式相匹配的每一个索引中的每一个文档。可以提交搜索查询、筛选搜索结果和查看文档数据。还可以看到匹配搜索查询和获取字段值统计的文档的数量。如果一个时间字段被配置为所选择的索引模式,则文档的分布随着时间的推移显示在页面顶部的直方图中。

■ Visualize

视图展示,支持许多风格。可视化能使你创造你的 Elasticsearch 指标数据的可视化。然后你可以建立仪表板显示相关的可视化。Kibana 的可视化是基于 Elasticsearch 查询。通过一系列的 Elasticsearch聚合提取和处理您的数据,您可以创建图表显示你需要知道的关于趋势,峰值和骤降。您可以从搜索保存的搜索中创建可视化或从一个新的搜索查询开始。

■ Dashboard

图表展示,一个仪表板显示Kibana保存的一系列可视化。你可以 根据需要安排和调整可视化,并保存仪表盘,可以被加载和共享。

■ Timelion

Timelion 是一个时间序列数据的可视化功能,可以结合在一个单一的可视化完全独立的数据源。它是由一个简单的表达式语言驱动的,你用来检索时间序列数据,进行计算,找出复杂的问题的答案,并可视化的结果。这个功能由一系列的功能函数组成,同样的查询的结果,也可以通过 Dashboard 显示查看。

■ Dev Tools

其实就是一个控制台,可以直接使用 DSL语法来直接操作es中的数据,使用户方便地通过浏览器直接与 Elasticsearch 进行交互。

使用

■ 搜索、查看并可视化 Elasticsearch 中所索引的数据,并通过创建柱状图、饼状图、表格、直方图和地图对数据进行分析。仪表板视图能将这些可视化元素集中到一起,然后通过浏览器加以分享,以提供有关海量数据的实时分析视图,为下列用例提供支持:

a:日志处理和分析

b:基础设施指标和容器监测

c:应用程序性能监测 (APM)

d:地理空间数据分析和可视化

e:安全分析

f:业务分析

■ 借助网络界面来监测和管理 Elastic Stack 实例并确保实例的安全。

■ 针对基于 Elastic Stack 开发的内置解决方案(面向可观测性、安全和企业搜索应用程序),将其访问权限集中到一起

如何使用

使用 Discover 搜索栏进行搜索。使用 Dev Tools 的 Console 直接与 Elastcsearch 进行交互 。

DSL语法

■ 查询所有

■ 查询特定的字段,按照指定字段排序

■ 查询指定字段的日志

■ 分页查询所有的日志

本人就职于公司大数据组,正好近期我在公司分享了关于ES、Kiban和机器学习的一些知识,总结出本文献给大家。

【ES三周年】高效搜索引擎ElasticSearch介绍

2023-02-19 13:58:58

环球热议:收藏备用!北京2023年最新服务通讯录来了!

2023-02-19 11:19:23

全球讯息:弱冷空气真的很“弱”?​明天开始这里气温又开始跳水“10℃”表演

2023-02-19 08:43:26

如何调养身体_试试这7个方式

2023-02-19 05:12:21

世界快播:降雪过后,兰州19日晴转多云

2023-02-19 00:01:59

荣耀Magic 5 Lite海外发布,或是基于X40打造|环球焦点

2023-02-18 20:40:23

世界快播:学校通知每日健康打卡_学校通知

2023-02-18 17:59:02

自动挡起步会顿一下_自动挡起步突然一顿一顿-环球热闻

2023-02-18 14:59:18

如果没有你日子怎么过是什么歌 益达广告_如果没有你日子怎么过

2023-02-18 11:47:52

科学家开发免费计算机程序来绘制肿瘤中的血流景观_天天要闻

2023-02-18 09:16:21

焦点快报!高血糖如何降下来我来支招_高血糖如何降下来呢

2023-02-18 07:00:13

2月17日基金净值:工银健康生活混合A最新净值0.8293,跌0.36%-天天观点

2023-02-18 01:55:04

特斯拉“狂飙”撞上公交车致1死1伤,特斯拉官方:全力配合交警部门调查

2023-02-17 22:13:59

世界即时看!自制女警服

2023-02-17 20:03:49

今日鱼油dha和藻油dha的区别_藻油dha和鱼油dha区别

2023-02-17 18:09:06

真相太残忍,原来福特才是混动鼻祖?-快讯

2023-02-17 16:34:17

全国多地春耕备耕工作正紧锣密鼓地展开

2023-02-17 12:02:49

天天视讯!福建厦门:新能源跑出“加速度” “出海”正当时

2023-02-17 10:51:46

快快_说一说快快的简介|环球简讯

2023-02-17 05:45:51

当前快看:徐青山

2023-02-17 00:51:38

石榴裙下无君子七绝_石榴裙下死 环球观焦点

2023-02-16 21:08:13

成华多项目规划公布,槐树店、北湖上新

2023-02-16 18:46:41

头狼:黄金1845空继续持仓看跌中,继续看1824一线|速看料

2023-02-16 17:10:16

世界速读:注意,长沙天心区这个区域停水

2023-02-16 14:56:13

“平安关爱”送关怀 帮扶慰问添暖意——松阳县关工委开展重点吸毒人员“平安关爱”行动

2023-02-16 13:03:55

德州故事‖高吉超:梦里故乡 当前快讯

2023-02-16 10:56:54

如何查询汽车保险到期时间详细

2023-02-16 07:22:02

今热点:新款到店,店长是这样管理的

2023-02-16 06:03:44

热文:两仪生四象四象生八卦图

2023-02-16 04:19:15

强制平仓的原因

2023-02-16 01:24:36

陈一玲好听的歌有哪些?陈一玲个人资料及图片

2023-02-16 01:17:16

当前关注:s300t_TCL及S300T及可以双卡双待吗

2023-02-15 22:19:50

环球今热点:中国·太原文化旅游推介招商大会举行

2023-02-15 22:08:59

环球滚动:dnf黑暗武士100级加点_简介dnf黑暗武士100级加点

2023-02-15 20:06:51

陈奕迅生日 生日是7月27日

2023-02-15 18:54:02

观察:梅州市青少年活动中心

2023-02-15 18:13:43

正式出山!曝CBA冠军教头加盟北控男篮,辅佐马布里

2023-02-15 17:09:23

按钮开关_说一说按钮开关的简介 世界讯息

2023-02-15 15:49:19

两寸照片像素是多少 常用照片尺寸素情况介绍 观热点

2023-02-15 15:07:02

微粒贷可以分多少期

2023-02-15 14:08:50

天天观察:消息称蔚来手机将很快上市:定位高端 绝无系统广告

2023-02-15 12:22:01

天天观察:熊去氧胆酸胶囊说明书

2023-02-15 11:42:11

四时田园杂兴其三十一古诗的意思20字_四时田园杂兴其三十一古诗的意思

2023-02-15 10:53:12

当前简讯:加盟商集体逃离KK集团

2023-02-15 09:00:38

关于老师的四字成语

2023-02-15 07:44:01

天天观速讯丨商业银行金融资产风险分类办法出炉

2023-02-15 07:08:27

中国用餐礼仪有哪些_当前报道

2023-02-15 04:03:08

天天微资讯!济南药山北侧小公园扩容 体现药山历史文化

2023-02-15 02:53:58

正宗家常麻辣兔肉怎么做好吃|环球今头条

2023-02-15 00:04:22

周秀娜&张继聪,上演“姣婆遇着脂粉客”励志版!男主迅速飞升,女主差啲成“影后”

2023-02-14 23:01:24

今日最新!一石等于多少斤_一石

2023-02-14 20:48:06

每日热点:北京冬奥会观后感

2023-02-14 20:11:01

华中数控:接受国海证券等机构调研

2023-02-14 18:15:58

今日观点!新湖中宝集中竞价减持已回购股份7505.15万股 减持比例为0.87%

2023-02-14 16:58:18

福字书法作品欣赏图片-每日速递

2023-02-14 16:00:09

消息!工行安顺分行:“黔旅快贷”为民宿发展开辟便捷路径

2023-02-14 15:03:55

天天观焦点:兴宁市人民医院_关于兴宁市人民医院的基本详情介绍

2023-02-14 13:13:21

给老师写的教师节贺卡简短祝福语

2023-02-14 12:03:37

“网上无法预约”“始终不受理”!提前还贷太难了,调降存量房贷利率?专家支招

2023-02-14 11:17:35

世界热头条丨嘉和美康:融资净偿还117.92万元,融资余额6612.72万元(02-13)

2023-02-14 07:49:18

portuguese是什么意思_portuguese的用法

2023-02-14 05:19:24

男子为爱买单138万,网恋“女友”竟是昔日狱友

2023-02-14 03:08:46

夜肖是哪几个生肖|世界速读

2023-02-14 01:08:34

罗博特科:待相应时机成熟,公司拟将择机重启Ficontec收购事项

2023-02-13 22:50:40

炮灰是什么意思 天天热消息

2023-02-13 21:32:44

全球视点!02月13日18时四川自贡疫情数据 阳了以后为什么会腰疼?应该怎么办?

2023-02-13 19:54:36

孕初期乳房痒怎么回事_怀孕初期乳房痒怎么办_世界百事通

2023-02-13 18:08:37

国家能源局:2022年全年核发绿证2060万个

2023-02-13 16:19:21

精选!北京生育保险报销要什么材料 需要提交的材料

2023-02-13 14:43:37

天天热讯:常德湘西北人才市场邮编_常德湘西北人才市场

2023-02-13 12:57:56

伊之密大涨超12%逼近历史高位,机构唱好

2023-02-09 11:08:31

佛手瓜,可以生吃吗_佛手瓜可以生吃吗

2023-02-09 10:22:00

天天精选!梭子蟹怎么保存 这三种保存方式都很保鲜

2023-02-09 10:28:09

要闻:消费券精准助力 预计一季度消费迎来强势复苏

2023-02-09 07:58:58

川航事件空姐奖励多少 中国机长奖励500万非常正确

2023-02-09 05:53:55

环球微速讯:半球电饭锅质量怎么样_半球

2023-02-09 06:03:22

【独家焦点】首批中国救援力量抵达土耳其 驻土中企员工自发支援:当地人烧木取暖、物资短缺

2023-02-09 03:07:44

谷爱凌个人简介大全

2023-02-09 02:26:42

Barratt-Boyes心脏外科学_世界新动态

2023-02-09 00:54:46

COCOTREE

2023-02-08 22:20:25

天天看点:乒乓球单打需注意的规则有哪些

2023-02-08 22:16:15

创益通:公司目前存储和高速的产品可应用于信息技术应用创新产业

2023-02-08 19:42:51

游百病的来历_什么是游百病 天天最新

2023-02-08 18:22:08

微速讯:60个团队获奖 第二届社区美空间全球创意设计竞赛落幕

2023-02-08 18:08:31

政策措施推动经济发展 贷款投放加速 融资成本下降_天天快报

2023-02-08 16:50:57

焦点讯息:贵绳股份(600992)2月8日主力资金净卖出1122.68万元

2023-02-08 15:32:09

《水浒传》读后感500字(通用10篇)-全球百事通

2023-02-08 14:47:04

观天下!2000字,说明白什么是「最优停止理论」?

2023-02-08 13:20:15

全球资讯:上海市民生活将有哪些新改善?2023年为民办实事项目正式发布

2023-02-08 11:42:52

世界今热点:软文如何写

2023-02-08 10:36:20

新冠病毒去哪了?它会消失吗?专家回应

2023-02-08 09:48:58

环球报道:临高新型冠状病毒肺炎疫情:2月8日临高疫情最新消息今天数据统计情况通报

2023-02-08 08:52:33

手机扬声器没有声音怎么回事_手机扬声器没有声音_全球速看

2023-02-08 07:34:49

全球热点评!藕片怎么做好吃家常做法

2023-02-08 06:00:06

张黎生 课程思政_张黎生

2023-02-08 04:22:19

无机颜料分散剂合成_无机颜料分散剂|前沿热点

2023-02-08 02:19:19

输入法没有了显示了怎么找到_输入法没有了

2023-02-08 01:23:10

618是什么节日?原来是这样_618是什么节日 世界新动态

2023-02-07 22:40:55

秋葵怎么炒 天天精选

2023-02-07 22:26:53

四川:支持符合条件的地方动态调整首套房贷款利率下限 环球关注

2023-02-07 20:00:07