wordpress网站建设,软件开发培训难学吗,南宁建站模板大全,腾讯邮箱注册目录一、Elasticsearch 简介二、Elasticsearch 发展史三、Elasticsearch 功能四、Elasticsearch 特点五、Elasticsearch 应用场景一、Elasticsearch 简介
Elasticsearch 是一个实时的分布式搜索分析引擎#xff0c;它能让你以前所未有的速度和规模#xff0c;去探索你的数据…
目录一、Elasticsearch 简介二、Elasticsearch 发展史三、Elasticsearch 功能四、Elasticsearch 特点五、Elasticsearch 应用场景一、Elasticsearch 简介
Elasticsearch 是一个实时的分布式搜索分析引擎它能让你以前所未有的速度和规模去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合。
Elasticsearch 中没有一个单独的组件是全新的或者是革命性的。全文搜索很久之前就已经可以做到了 就像很早之前出现的分析系统和分布式数据库。 革命性的成果在于将这些单独的有用的组件融合到一个单一的、一致的、实时的应用中。对于初学者而言它的门槛相对较低 而当你的技能提升或需求增加时它也始终能满足你的需求。
Elasticsearch 是一个开源的搜索引擎建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库—无论是开源还是私有。但是 Lucene 仅仅只是一个库。为了充分发挥其功能你需要使用 Java 并将 Lucene 直接集成到应用程序中。 更糟糕的是您可能需要获得信息检索学位才能了解其工作原理。Lucene 非常 复杂。Elasticsearch 也是使用 Java 编写的它的内部使用 Lucene 做索引与搜索但是它的目的是使全文检索变得简单 通过隐藏 Lucene 的复杂性取而代之的提供一套简单一致的 RESTful API。
Lucene 是什么 Lucene是非常优秀的成熟的 开源的 免费的纯 纯java 语言的全文索引检索工具包。Lucene是一个高性能、可伸缩的信息搜索(IR)库。Information Retrieval(IR) library.它使你可以为你的应用程序添加索引和搜索能力。Lucene的作者Doug Cutting是资深的全文索引/检索专家最开始发布在他本人的主页上2001年10月贡献给APACHE成为APACHE基金的一个子项目。Lucene是一个IR库而不是现成的产品当然也不是Lucene的初识者常常认为的web爬行器。
二、Elasticsearch 发展史
重要版本发布及版本特性 0.42010年2月第一次发布 2010年2月8日 Shay Banon 发表了一篇博客说他基于Lucene开发封装 了一个分布式搜索引擎实现了一些功能。。。 0.72010年5月 2010年5月14日发布第一个可以查询到发版信息的版本重要特性 Zen Discovery 自动发现模块Groovy Client支持简单的插件管理机制更好支持ICU分词器更多的管理API 1.02014年2月 2014年2月14日发布重要特性 Snapshot/Restore API 备份恢复API支持聚合分析AggregationsCAT API 支持支持联盟查询断路器支持Doc values 引入 2.02015年10月 2015年10月28日发布重要特性 增加了 pipleline Aggregationsquery/filter 查询合并都合并到query中根据不同的上下文执行不同的查询存储压缩可配置Rivers 模块被移除Multicast 组播发现被移除成为一个插件生产环境必须配置单播地址 5.02016年10月 2016年10月26日发布重要特性 Lucene 6.x 的支持磁盘空间少一半索引时间少一半查询性能提升25%支持IPV6。Internal engine级别移除了用于避免同一文档并发更新的竞争锁带来15%-20%的性能提升Shrink API 它可将分片数进行收缩成它的因数如之前你是15个分片你可以收缩成5个或者3个又或者1个那么我们就可以想象成这样一种场景在写入压力非常大的收集阶段设置足够多的索引充分利用shard的并行写能力索引写完之后收缩成更少的shard提高查询性能提供了第一个Java原生的REST客户端SDKIngestNode之前如果需要对数据进行加工都是在索引之前进行处理比如logstash可以对日志进行结构化和转换现在直接在es就可以处理了提供了 Painless 脚本代替Groovy脚本 6.02017年8月 2017年8月31日发布重要特性 稀疏性 Doc Values 的支持Index sorting即索引阶段的排序。顺序号的支持每个 es 的操作都有一个顺序编号类似增量设计无缝滚动升级Removal of types在 6.0 里面开始不支持一个 index 里面存在多个 typeIndex-template inheritance索引版本的继承目前索引模板是所有匹配的都会合并这样会造成索引模板有一些冲突问题 6.0 将会只匹配一个索引创建时也会进行验证Load aware shard routing 基于负载的请求路由目前的搜索请求是全节点轮询那么性能最慢的节点往往会造成整体的延迟增加新的实现方式将基于队列的耗费时间自动调节队列长度负载高的节点的队列长度将减少让其他节点分摊更多的压力搜索和索引都将基于这种机制。已经关闭的索引将也支持 replica 的自动处理确保数据可靠。 7.02019年4月 2019年4月10日发布重要特性 引入了真正的内存断路器它可以更精准地检测出无法处理的请求并防止它们使单个节点不稳定Zen2 是 Elasticsearch 的全新集群协调层提高了可靠性、性能和用户体验变得更快、更安全并更易于使用查询优化 更快的前 k 个查询间隔查询Function score 2.0 8.02022年2月 2022年2月11日发布重要特性 REST API 兼容性 8.0 为 Elasticsearch REST APIs 引入了一些重大的变化。Elasticsearch 已经在 REST API 中增加了对 7.x 兼容性 header 的支持。这些可选的 header 文件让你向 8.0 集群发出 7.x 兼容的请求并收到 7.x 兼容的响应。 安全功能在默认情况下被启用和配置首次启动 Elasticsearch 时会自动进行以下安全配置 为传输层和 HTTP 层生成 TLS 证书和密钥。TLS 配置设置被写入elasticsearch.yml。为 elastic 用户生成密码。为 Kibana 生成一个注册令牌。 系统索引得到更好保护 在 Elasticsearch 8.0 中做了一些改变来保护系统索引不被直接访问。要访问系统索引的话用户现在必须把 allow_restricted_indices 权限设置为 true。superuser 角色也不再给予系统索引的写入权限。因此内置的 elastic superuser 默认不能改变系统索引。此后开发者应使用 Kibana 或相关的 Elasticsearch APIs 来管理某个功能的数据而不是访问系统索引。如果你直接访问系统索引Elasticsearch 将在 API 响应的 header 中和废弃日志中返回警告。 新的 kNN 搜索(kNN搜索是通过相似度判断来根据查询向量查找K个邻近的向量)使用kNN的场景有 基于自然语言处理NLP算法的相关性排序。产品推荐和推荐引擎。图片或视频的相似搜索。 更新了倒排索引的内部数据结构节省了磁盘存储空间。 这种变化将使 keyword 字段类型、 match_only_text 字段类型以及在较小程度上的 text字段类型受益。该更新使得转化为 message 字段索引大小映射为match_only_text减少了 14.4%磁盘占用空间总体减少了 3.5%。 加快geo_point,geo_shape和 range 字段索引速度 新版本优化了多维点multi-dimensional points的索引速度多维点是用于 geo_point、geo_shape 和range 字段的内部数据结构。Lucene 级别的基准测试显示这些字段类型的索引速度提高了 10-15%。主要由这些字段组成的 Elasticsearch 索引和数据流可能会在索引速度方面有显著的改进。 PyTorch 模型支持自然语言处理 (NLP) 可以上传在 Elasticsearch 之外训练的 PyTorch 模型并在摄取时使用它们进行推理。第三方模型支持为 Elastic Stack 带来了现代自然语言处理 (NLP)和搜索用例例如 填充蒙版 Fill-mask命名实体识别 Named entity recognition (NER)文本分类 Text classification文本嵌入 Text embedding零样本分类 Zero-shot classification 发布日期版本号时间间隔2010-02-08V0.22010-05-14V0.795天2014-02-14V1.01372 天2015-10-28V2.0621 天2016-10-26V5.0364 天2017-11-14V6.0384 天2019-04-10V7.0512 天2022-02-11V8.01038 天
三、Elasticsearch 功能 分布式的搜索引擎和数据分析引擎 搜索就是类似于百度查找各种网页数据分析就类似于博客统计累计访问量、电商平台的销量前十 全文检索、结构化检索、数据分析 全文检索类似于sql中的模糊查询全文进行搜索结构化搜索就类似于指定查询查找到对应的一行 对海量数据进行近实时处理 分布式ES自定可以将海量数据分散到多台服务器上存储和检索海量数据的处理分布式以后就可以采用大量的服务器去存储和检索数据自然而然就可以实现海量数据的处理了近实时检索个数据要花费1小时这时就不要近实时做好进行离线批量处理在秒级别对数据进行搜索和分析 四、Elasticsearch 特点 可以作为一个大型分布式集群数百台服务器技术处理PB级数据服务大公司也可以运行在单机上服务小公司Elasticsearch不是什么新技术主要是将全文检索、数据分析以及分布式技术合并在了一起才形成了独一无二的ESlucene全文检索商用的数据分析软件也是有的分布式数据库mycat对用户而言是开箱即用的非常简单作为中小型的应用直接3分钟部署一下ES就可以作为生产环境的系统来使用了数据量不大操作不是太复杂数据库的功能面对很多领域是不够用的事务还有各种联机事务型的操作特殊的功能比如全文检索同义词处理相关度排名复杂数据分析海量数据的近实时处理Elasticsearch作为传统数据库的一个全文搜索是指计算机索引程序通过扫描文章中的每一个词对每一个词建立一个索引指明该词在文章中出现的次数和位置当用户查询时检索程序就根据事先建立的索引进行查找并将查找的结果反馈给用户的检索方式。 五、Elasticsearch 应用场景
站点搜索、系统搜索、数据分析。。。 维基百科类似百度百科牙膏牙膏的维基百科全文检索高亮搜索推荐The Guardian国外新闻网站类似搜狐新闻用户行为日志点击浏览收藏评论社交网络数据对某某新闻的相关看法数据分析给到每篇新闻文章的作者让他知道他的文章的公众反馈好坏热门垃圾鄙视崇拜Stack Overflow国外的程序异常讨论论坛IT问题程序的报错提交上去有人会跟你讨论和回答全文检索搜索相关问题和答案程序报错了就会将报错信息粘贴到里面去搜索有没有对应的答案GitHub开源代码管理搜索上千亿行代码电商网站检索商品日志数据分析logstash采集日志ES进行复杂的数据分析ELK技术elasticsearchlogstashkibana商品价格监控网站用户设定某商品的价格阈值当低于该阈值的时候发送通知消息给用户比如说订阅牙膏的监控如果高露洁牙膏的家庭套装低于50块钱就通知我我就去买BI系统商业智能Business Intelligence。比如说有个大型商场集团BI分析一下某某区域最近3年的用户消费金额的趋势以及用户群体的组成构成产出相关的数张报表**区最近3年每年消费金额呈现100%的增长而且用户群体85%是高级白领开一个新商场。ES执行数据分析和挖掘Kibana进行数据可视化国内国内站内搜索电商招聘门户等等IT系统搜索OACRMERP等等数据分析ES热门的一个使用场景 参考 Elasticsearch 中文社区 Elasticsearch 中文文档 Elasticsearch: 权威指南 Elasticsearch-PHP Elasticsearch 请求示例 Elasticsearch的术语原理概念及应用场景一 Elasticsearch基础1——搜索引擎发展史和工作流程、es/es-head/kibana的基础安装