全球速讯:【ES三周年】高效搜索引擎ElasticSearch介绍
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-22
全球快播:三项MVP榜单第1+CBS评第1超巨:约基奇三连MVP很稳 掘金1点还加码
2023-02-22
21个行业获融资净买入 医药生物行业获净买入最多
2023-02-22
【环球热闻】摩洛哥破获一起大麻树脂走私案 逮捕7名涉案人员
2023-02-22
视讯!夺冠榜刷新!郑钦文大胜TOP5高居榜首,张帅顶住赛季最高Ace排第6
2023-02-22
环球讯息:长江中游四省会城市签署“三年计划”
2023-02-21
还在穿黑白灰?春节穿上明媚、温暖的红色:美得惊艳时光! 环球观察
2023-02-21
环球观察:楼市“春意”初现,多个大型城市成交回升明显
2023-02-21
2023年日照市财政系统将在七个方面加力提效 环球关注
2023-02-21
就在南昌一小区!它突然现身
2023-02-21
全球快播:三项MVP榜单第1+CBS评第1超巨:约基奇三连MVP很稳 掘金1点还加码
21个行业获融资净买入 医药生物行业获净买入最多
【环球热闻】摩洛哥破获一起大麻树脂走私案 逮捕7名涉案人员
视讯!夺冠榜刷新!郑钦文大胜TOP5高居榜首,张帅顶住赛季最高Ace排第6
环球讯息:长江中游四省会城市签署“三年计划”
还在穿黑白灰?春节穿上明媚、温暖的红色:美得惊艳时光! 环球观察
环球观察:楼市“春意”初现,多个大型城市成交回升明显
2023年日照市财政系统将在七个方面加力提效 环球关注
就在南昌一小区!它突然现身
江苏聚焦稳链补链强链,加快构建现代化产业体系 聚链成群,锻造产业竞争新优势(经济大省勇挑大梁②)
铁矿石期货价格连创新高 相关概念股飙升走强
不动产私募投资基金试点启动!中基协发布指引,投资范围、管理人、资金募集…全都明确
十年生死两茫茫_十年生死两茫茫悼念谁 头条
环球最新:2022年上海第三代社保卡怎么办理_步骤
个人养老金开户陷持久战:银行员工“麻了”,地推上门揽生意 焦点信息
菠萝蜜能放冰箱吗 菠萝蜜可不可以放冰箱 全球热议
雨水 饮一杯百香柠檬,品一口清新春意 全球快资讯
检察监督为农民工讨回工资
江西湖口打造智慧农业大课堂-天天快报
万通发展:嘉华控股所持330.43万股股份被司法冻结
要求马斯克不要限制乌军使用“星链”?布林肯模糊回应 全球时快讯
天天即时看!杨忠亮_关于杨忠亮简述
每日快报!人有多大胆地有多大产图片_人有多大胆地有多大产
梦的解析阅读_梦的门口-世界观点
蚂蚁庄园诗句心有灵犀一点通中的灵犀指什么_集句诗 心有灵犀一点通 今日关注
桂圆干怎么吃_干桂圆一天吃多少合适-当前热闻
全球观察:洛神花果子能吃吗?_洛神花果子有什么用
全球新动态:这3款早点方便快捷有营养,做法简单一看就会,独居打工人别错过
如何从种子中种植长春花 全球播报
- 建议的近义词的读法-当前关注
- 赛尔号卡沃尔怎么打_赛尔号卡尔玛怎么打
- 天天热资讯!安庆市双龙电器有限责任公司
- 全球讯息:dnf艾泽拉不死的方法_原来是这样的
- 我发财了动图_我发财
- 世界速讯:飞花轻寒李白_说一说飞花轻寒李白的简介
- 最新快讯!八部门联合 助力退役军人及时就业
- 微动态丨牛肉怎么吃适合 牛肉如何吃适合
- 手机QQ如何给信任设备重命名_QQ重命名设备
- 西安实验职专与陕西交职院中高职贯通培养推进会
- 地下城与勇士卡片升级攻略_地下城与勇士卡片 每日精选
- 外交部介绍伊朗总统莱希访华情况 全球快消息
- 西安曲江新区举办家门口就业现场招聘会 全球观天下
- 当前速看:今日时讯:字母哥伤退雄鹿轻取公牛获12连胜 望无碍布登字母哥伤情的初步诊断充满希望接下来会继续评估
- 天府通查看余额的方法_天府通如何查询余额 当前聚焦
- 关注:瑞晨环保(301273)2月16日主力资金净卖出193.74万元
- 质量到底指什么_质量是什么概念
- 山药蛋的功效吃法_这样做的山药蛋不够吃
- “冷门”却是精品豪车,比亚洲龙大一圈,满油能跑800公里,全系配双叉臂-今热点
- 三墩会成为杭州的“潜力股”吗?
- 02月16日15时四川南充疫情数据 阳了以后为什么会腰疼?应该怎么办?|环球简讯
- 一道新能正式完成新一轮融资|全球微速讯
- snh48_sn_头条
- 六经济大省全国GDP占比44.2% 经济动力在何处?
- 春风十里,不如校园有你!宝山区中小学校开学仪式感满满 全球快播
- apple的id是什么东西_apple的id是什么
- 世界今日报丨捷安特折叠变速自行车_捷安特折叠自行车
- 全球快报:周公解梦梦见黑蜘蛛是什么意思
- excel如何添加下拉选项 全球讯息
- 张士超你到底把我家钥匙放在哪里了_张士超你到底把我家钥匙放在哪里了百科_当前消息
- 全球热头条丨世界十大最快过山车,你敢坐吗?
- 每日短讯:申请生育津贴需要满足什么条件?
- 翱捷科技大宗交易成交656.40万元
- 演员牛萌萌个人资料 牛萌萌介绍_全球即时
- 香港可以用人民币吗?
- 如何修复绿松石首饰
- 每日观点:梦见穿新鞋是什么意思 梦到穿新鞋是什么预兆
- 【世界时快讯】免费!恭喜巴萨!权威消息源透露,法国顶级中卫今夏加盟
- 通讯:与时间赛跑 为生命接力——中国救援队在土耳其地震灾区守护生的希望|世界微速讯
- 天天要闻:49吨榴莲销毁成有机肥 具体是什么情况?
- 全球新消息丨山西柳林农村商业银行金家庄支行举行开业揭牌仪式
- 深圳今年计划安排重大项目841个,总投资约3.6万亿
- 全球观察:立秋是什么意思_立秋节气由来介绍
- 50%的新发癌症都可避免!国际癌症研究机构公布12条防癌建议
- 全球消息!秦舒培一脱成名_秦舒培个人资料
- 车间管理工作总结优秀范文|当前独家
- 专项附加扣除退税到哪里_专项附加扣除怎么退税_新要闻
- 【环球时快讯】2个弓字打一成语
- 吉祥航空1月运输旅客约150万人次,客座率上升至74.12%-世界热头条
- 八年级上册政治复习提纲_八年级上册政治知识点