【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和机器学习的一些知识,总结出本文献给大家。

183元/吨!全国首单红树林保护碳汇将公开拍卖

2023-09-09 13:57:54

重庆市璧山区2023-09-09 10:12发布高温橙色预警

2023-09-09 12:05:29

国家统计局:CPI环比涨幅略有扩大 PPI环比由降转涨

2023-09-09 10:23:56

一边取经,一边加速,BBA们亮出了新能源“剑锋”

2023-09-09 09:03:37

河岸“会客厅”打造京城新地标

2023-09-09 06:43:58

穿鞋要人伺候,助理跪地举话筒,赚钱用亿计算,谁还在心疼明星?

2023-09-09 02:03:40

福建集中签约50个重大项目 计划总投资1222.8亿元

2023-09-08 22:08:28

乘联会:8月乘用车市场零售达192.0万辆 同比增长2.5%

2023-09-08 18:47:55

特斯拉股价止跌回升,现在还能买么?

2023-09-08 17:48:34

西山科技:截至目前未有主要产品纳入国家或各省市集中带量采购名单

2023-09-08 16:42:45

预付费卡预收余额达50万元应向各区商务部门进行备案

2023-09-08 15:30:16

经济管理类中文核心期刊 经济管理类核心期刊

2023-09-08 14:13:56

万集科技9月8日快速上涨

2023-09-08 12:40:47

家校携手 温暖前行

2023-09-08 11:34:52

豆粕/菜粕:短期延续高位震荡

2023-09-08 10:48:10

湖北城市建设职业技术学院召开产教融合项目论证会

2023-09-08 09:57:09

泸州龙马潭:带电作业保“清凉” “不停电就是最好的服务”

2023-09-01 10:53:29

潘婷删除宋祖儿相关内容 三天前官宣商务代言

2023-09-01 09:31:11

2023暑期档总票房超206亿元 创中国影史多项纪录

2023-09-01 08:06:57

继续看好科技!!

2023-09-01 06:12:55

微信里舍不得删的公众号,值得收藏

2023-09-01 01:45:05

欲比拟微信:马斯克官宣 X 平台即将更新“音频与视频通话”选项

2023-08-31 21:51:23

36氪2023Q2总收入稳健增长,毛利率强势回升至55%,应用AI技术赋能业务增收提效,驱动业绩高质量增长

2023-08-31 20:37:45

巨人网络首次推出中期分红 《月圆之夜》PVP模式今日正式上线

2023-08-31 18:56:49

四川攀枝花可提供博世洗碗机维修服务地址在哪

2023-08-31 17:43:02

俄滨海边疆区屡遭暴雨袭击 经济损失达70亿卢布

2023-08-31 16:34:49

2023年8月31日二氯乙烷价格最新行情预测

2023-08-31 15:24:31

推动标准新高地建设,杨浦新增6个市级标准化试点项目

2023-08-31 14:26:42

开源证券:给予百普赛斯买入评级

2023-08-31 13:08:48

建立“一生一档” 做好分流安置 确保受灾学生如期开学

2023-08-31 11:40:39

警惕借医疗反腐“一杆子打翻一船人”

2023-08-31 10:12:57

治安管理处罚法修订草案首次提请审议,这些看点值得关注

2023-08-31 09:36:22

深圳再赴香港拟发行50亿元离岸地方债 将投向老旧小区改造等

2023-08-31 08:48:34

华生行为主义心理学的优点(行为主义心理学创始人一一约翰

2023-08-31 07:16:13

狗一直叫怎么制止(狗狗一直叫怎么制止)

2023-08-31 04:38:49

在菲律宾马尼拉能买到什么特产带回国内(在菲律宾马尼拉能买到什么特产带回国)

2023-08-30 23:08:15

算力芯片龙头财报续亏坦言与英伟达存在差距

2023-08-30 21:11:25

岁末到家清蒋士铨拼音版(岁末到家清蒋士铨)

2023-08-30 19:51:43

Tims天好中国Q2翻倍增长,营收4.117亿

2023-08-30 18:32:03

8月30日拓维信息(002261)龙虎榜数据:游资作手新一上榜

2023-08-30 17:38:14

卡倍亿:卡倍亿主要生产汽车用线缆缆产品 公司目前尚未开展机器人相关的业务

2023-08-30 16:30:47

塔塔马蒂诺确认莱昂内尔梅西将在职业足球大联盟对阵纳什维尔的国际迈阿密比赛中首发

2023-08-30 15:13:37

鲁梅尼格:德甲冠军+德国杯决赛+欧冠四强,拜仁就是踢了个好赛季

2023-08-30 13:52:27

湖南省青联科技界别开展走进智能制造企业活动

2023-08-30 12:35:33

天虹股份:公司对数据领域的发展持续保持关注,并积极探索适合自身业务的相关发展机会

2023-08-30 11:17:56

led照明工程(关于led照明工程的基本详情介绍)

2023-08-30 10:00:04

抚州市东临新区:公路建设助力乡村振兴

2023-08-30 09:15:47

巧解百姓烦心事

2023-08-30 08:05:03

莫迪波·迈加(关于莫迪波·迈加简述)

2023-08-30 06:17:27

字体字形著作权受法律保护吗?

2023-08-30 01:57:30

库杜斯访问--直觉指引我选择西汉姆

2023-08-29 20:34:41

云南14位考生号是什么 14位考生号是什么

2023-08-29 19:00:26

艾艾精工(603580.SH)发半年度业绩,净利润216万元,同比增长18.47%

2023-08-29 17:35:13

爱威科技:业绩说明会定于9月13日举行

2023-08-29 16:09:58

比亚迪s6发动机ABS故障灯同时亮

2023-08-29 14:49:38

人形机器人产业链中报量产进展好于预期

2023-08-29 13:06:37

欧洲两大股指28日上涨

2023-08-29 11:59:01

万向钱潮:目前为特斯拉间接配套球笼、三销节、转向万向节等产品

2023-08-29 09:33:58

仙桃一区一策改造老旧小区——“改”出新生活 “造”就新活力

2023-08-29 08:47:30

【你好武汉】紧急提醒!@打过科兴疫苗的武汉人

2023-08-29 06:51:55

上海新阳(300236):8月28日北向资金减持22.92万股

2023-08-29 04:14:00

宝宝胃口不好?试试中医调理呗

2023-08-28 22:41:07

上海贵酒鄢克亚:以品牌思维搭建酒企护城河

2023-08-28 19:45:36

仰泳教学视频_仰泳教学

2023-08-28 18:05:29

特斯拉FSD12直播首秀!45分钟仅一次干预

2023-08-28 16:54:28

国林科技:公司半导体系列产品客户验证进展顺利

2023-08-28 15:20:35

印花税减半或让利近千亿 印花税下调释放哪些积极信号?

2023-08-28 12:16:31

超多新特性!外网玩家曝《往日之影》新内容

2023-08-28 10:57:30

新概念英语第一册基础语法:名词性从句

2023-08-28 09:11:21

好看又治愈的背景图蓝色 背景图蓝色

2023-08-28 07:06:08

空调自清洁功能有用什么用(空调自清洁功能有用)

2023-08-28 00:40:31

“体育+文旅”更多“沉睡”体育资源被盘活 带动乡村百姓增收致富

2023-08-27 20:44:13

昊志机电(300503.SZ)发布上半年业绩,净亏损1483.69万元,由盈转亏

2023-08-27 18:48:14

【新机】新机扎堆发布!realme/OPPO/iQOO出招

2023-08-27 16:52:23

日本渔民哭诉核污水入海:国家太愚弄人了

2023-08-27 14:47:57

【强信心 起好步 开新局】三百多家食品餐饮企业云集会展中心

2023-08-27 11:06:27

梦见碗是什么意思

2023-08-27 09:34:06

东方甄选入驻淘宝直播,俞敏洪下了一盘大棋

2023-08-27 07:46:49

莴苣炒肉(关于莴苣炒肉简述)

2023-08-27 03:02:04

激活改善性住房 “认房不认贷”政策标准落地

2023-08-26 22:02:13

2023年注册会计师《公司战略与风险管理》考试考后讨论区开放啦!

2023-08-26 19:19:52

苏州金秋购车补贴申请人数超5000

2023-08-26 17:09:02

江门台山:“骑手义警”帮助走失老人与家人团聚

2023-08-26 15:04:03

记事本在电脑哪个位置(记事本在电脑哪里)

2023-08-26 12:50:47

蜂巢能源351万股权被冻结

2023-08-26 11:03:14

集美区税务局:优惠政策精准达 助企纾困力度大

2023-08-26 08:45:42

和田玉的辨别方法 和田玉的辨别方法有哪些

2023-08-26 06:30:26

乐普医疗(300003.SZ)发布上半年业绩,净利润9.61亿元,下降24.17%

2023-08-26 02:52:47

精选高清动漫壁纸头像推荐(第二百一十一期)

2023-08-25 22:30:55

越秀地产:上半年合同销售金额同比增长71% 有信心超额完成年度目标

2023-08-25 20:48:19

首都体育学院湖北录取分数线 首都体育学院湖北招生人数多少

2023-08-25 19:10:19

大盘迭创新低,下周触底反弹概率偏大!

2023-08-25 17:46:21

种牙也能开“导航”?数字化种植成为缺牙修复新选择

2023-08-25 15:54:59

生源地助学贷款延期办理流程?

2023-08-25 14:41:15

菏泽市开发区佃户屯街道邵楼社区志愿服务队(关于菏泽市开发区佃户屯街道邵楼社区志愿服务队简述)

2023-08-25 13:13:10

旗舰同款!真我GT5搭载Pro-XDR高动态显示:亮度至高提升8倍

2023-08-25 11:34:45

固高科技8月25日盘中跌幅达5%

2023-08-25 10:06:32

受汛情影响地区积极做好秋季开学准备

2023-08-25 09:02:05

振兴“湘”村|无花果开出“幸福花”

2023-08-25 07:34:40

冀凯股份:部分客户年度采购计划滞后等 上半年转亏1600万元–2100万元

2023-08-25 05:19:17