Elasticsearch7.2系列文章:https://www.xugj520.cn/category/ES/

为了搜索和分析,你懂得!!!

简介

Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集,聚合和丰富您的数据并将其存储在Elasticsearch中。Kibana使您能够以交互方式探索,可视化和分享数据洞察,并管理和监控堆栈。Elasticsearch是索引,搜索和分析魔术发生的地方。

Elasticsearch为所有类型的数据提供实时搜索和分析。无论您是结构化文档还是非结构化文本,数字数据或地理空间数据,Elasticsearch都可以以支持快速搜索的方式有效地存储和索引它。您可以远远超出简单的数据检索和聚合信息,以发现数据中的趋势和模式。随着您的数据和查询量的增长,Elasticsearch的分布式特性使您的部署能够与其一起无缝地增长。

虽然不是每个问题都是搜索问题,但Elasticsearch提供了处理各种用例数据的速度和灵活性:

  • 将搜索框添加到应用或网站
  • 存储和分析日志,指标和安全事件数据
  • 使用机器学习实时自动建模数据行为
  • 使用Elasticsearch作为存储引擎自动化业务工作流程
  • 使用Elasticsearch作为地理信息系统(GIS)管理,集成和分析空间信息
  • 使用Elasticsearch作为生物信息学研究工具存储和处理遗传数据
    我们对人们使用搜索的新颖方式感到惊讶。但是,无论您的用例是否与其中一个相似,或者您使用Elasticsearch来解决新问题,您在Elasticsearch中处理数据,文档和索引的方式都是相同的。

数据输入:文件和索引

Elasticsearch是一个分布式文档存储。Elasticsearch不是将信息存储为列数据行,而是存储已经序列化为JSON文档的复杂数据结构。当群集中有多个Elasticsearch节点时,存储的文档将分布在群集中,并且可以从任何节点立即访问。

存储文档时,它会在1秒内实时索引并完全可搜索。Elasticsearch使用称为倒排索引的数据结构,支持非常快速的全文搜索。倒排索引列出任何文档中出现的每个唯一单词,并标识每个单词出现的所有文档。

索引可以被视为优化的文档集合,每个文档都是字段的集合,这些字段是包含数据的键值对。默认情况下,Elasticsearch会为每个字段中的所有数据编制索引,并且每个索引字段都具有专用的优化数据结构。例如,文本字段存储在反向索引中,数字和地理字段存储在BKD树中。使用每个字段的数据结构来汇编和返回搜索结果的能力使Elasticsearch如此之快。

Elasticsearch还具有无模式的能力,这意味着可以索引文档而无需显式指定如何处理文档中可能出现的每个不同字段。启用动态映射后,Elasticsearch会自动检测并向索引添加新字段。这种默认行为使您可以轻松索引和浏览数据 - 只需开始索引文档,Elasticsearch将检测并将布尔值,浮点和整数值,日期和字符串映射到相应的Elasticsearch数据类型。

但是,最终,您比Elasticsearch更了解您的数据以及您希望如何使用它。您可以定义规则来控制动态映射并显式定义映射,以完全控制字段的存储和索引方式。

定义自己的映射使您能够:

  • 区分全文字符串字段和精确值字符串字段
  • 执行特定于语言的文本分析
  • 优化字段以进行部分匹配
  • 使用自定义日期格式
  • 使用诸如geo_point和geo_shape无法自动检测的数据类型
    为不同目的以不同方式索引相同字段通常很有用。例如,您可能希望将字符串字段索引为全文搜索的文本字段和用于排序或聚合数据的关键字字段。或者,您可以选择使用多个语言分析器来处理包含用户输入的字符串字段的内容。

在索引期间应用于全文字段的分析链也在搜索时使用。查询全文字段时,查询文本在索引中查找术语之前会进行相同的分析。

信息输出:搜索和分析

虽然您可以将Elasticsearch用作文档存储并检索文档及其元数据,但真正的强大功能来自于能够轻松访问基于Apache Lucene搜索引擎库构建的全套搜索功能。

Elasticsearch提供了一个简单,一致的REST API,用于管理集群,索引和搜索数据。出于测试目的,您可以直接从命令行或通过Kibana中的Developer Console轻松提交请求。从您的应用程序中,您可以使用 Elasticsearch客户端 作为您选择的语言:Java,JavaScript,Go,.NET,PHP,Perl,Python或Ruby。

搜索您的数据
Elasticsearch REST API支持结合了两者的结构化查询,全文查询和复杂查询。结构化查询类似于可以在SQL中构造的查询类型。例如,您可以搜索索引中的gender和age字段,并按字段employee对匹配项进行排序hire_date。全文查询查找与查询字符串匹配的所有文档,并按相关性对其进行返回 - 与搜索字词的匹配程度。

除了搜索单个术语外,您还可以执行短语搜索,相似性搜索和前缀搜索,并获取自动填充建议。

是否要搜索地理空间或其他数字数据?Elasticsearch将优化数据结构中的非文本数据编入索引,以支持高性能的地理和数字查询。

您可以使用Elasticsearch的全面JSON样式查询语言(查询DSL)访问所有这些搜索功能。您还可以构建SQL样式的查询以在Elasticsearch内本地搜索和聚合数据,JDBC和ODBC驱动程序使各种第三方应用程序能够通过SQL与Elasticsearch进行交互。

分析您的数据
通过Elasticsearch聚合,您可以构建复杂的数据摘要,并深入了解关键指标,模式和趋势。聚合使您无法找到众所周知的“大海捞针”,而是回答以下问题:

  • 大海捞针有多少针?

  • 针的平均长度是多少?

  • 根据制造商细分的针的中位长度是多少?

  • 在过去的六个月里,每天有多少针被加到草堆里?
    您还可以使用聚合来回答更微妙的问题,例如:

  • 你最受欢迎的针头制造商是什么?

  • 是否有任何异常或异常的针丛?
    由于聚合利用了用于搜索的相同数据结构,因此它们也非常快。这使您可以实时分析和可视化数据。您的报告和仪表板会随着数据更改而更新,以便您可以根据最新信息采取措施。

更重要的是,聚合与搜索请求一起运行。您可以在同一数据中,在单个请求中同时搜索文档,过滤结果和执行分析。并且因为聚合是在特定搜索的上下文中计算的,所以您不仅要显示所有70针的数量,而是显示与用户的搜索条件匹配的70针的数量 - 例如,所有尺寸70 不粘刺绣针。

但是等等,还有更多的
想要自动分析您的时间序列数据?您可以使用 机器学习功能在数据中创建正常行为的准确基线,并识别异常模式。通过机器学习,您可以检测到:

与值,计数或频率的时间偏差相关的异常
统计稀缺
一个人口的不寻常行为
最好的部分?您无需指定算法,模型或其他与数据科学相关的配置即可完成此操作。

可伸缩性和弹性:集群,节点和分片

Elasticsearch始终可用,可根据您的需求进行扩展。它通过自然分配来实现这一点。您可以将服务器(节点)添加到群集以增加容量,Elasticsearch会自动在所有可用节点上分配数据和查询负载。无需彻底检查您的应用程序,Elasticsearch了解如何平衡多节点群集以提供规模和高可用性。节点越多,越好。

这是如何运作的?在封面下,Elasticsearch索引实际上只是一个或多个物理分片的逻辑分组,其中每个分片实际上是一个自包含的索引。通过跨多个分片在索引中分发文档,并将这些分片分布在多个节点上,Elasticsearch可以确保冗余,这可以防止硬件故障,并在节点添加到群集时提高查询容量。随着集群的增长(或收缩),Elasticsearch会自动迁移分片以重新平衡集群。

有两种类型的分片:原色和副本。索引中的每个文档都属于一个主分片。副本分片是主分片的副本。副本提供数据的冗余副本,以防止硬件故障并增加服务读取请求(如搜索或检索文档)的容量。

索引中的主分片数在创建索引时是固定的,但副本分片的数量可以随时更改,而不会中断索引或查询操作。

这取决于… …

关于分片大小和为索引配置的主分片数量,存在许多性能考虑因素和折衷方案。分片越多,维护这些索引的开销就越大。分片大小越大,当Elasticsearch需要重新平衡群集时,移动分片所需的时间越长。

查询大量小分片使得每个分片的处理速度更快,但查询意味着更多的开销,因此查询较少数量的较大分片可能会更快。简而言之…这取决于。

作为一个起点:

  • 旨在将平均分片大小保持在几GB到几十GB之间。对于具有基于时间的数据的用例,通常会看到20GB到40GB范围内的分片。
  • 避免大量碎片问题。节点可以容纳的分片数量与可用堆空间成比例。作为一般规则,每GB堆空间的分片数应小于20。
    确定用例的最佳配置的最佳方法是 使用您自己的数据和查询进行测试。

在容灾的情况下
出于性能原因,群集中的节点需要位于同一网络上。在不同数据中心的节点之间平衡群集中的分片只需要太长时间。但是高可用性架构要求您避免将所有鸡蛋放在一个篮子里。如果在一个位置发生重大中断,则另一个位置的服务器需要能够接管。无缝连接。答案?跨群集复制(CCR)。

CCR提供了一种自动将索引从主群集同步到可作为热备份的辅助远程群集的方法。如果主群集出现故障,则辅助群集可以接管。您还可以使用CCR创建辅助群集,以便在地理位置接近用户时提供读取请求。

跨群集复制是主动 - 被动的。主群集上的索引是活动的leader索引并处理所有写入请求。复制到辅助群集的索引是只读关注者。

维护和管理
与任何企业系统一样,您需要工具来保护,管理和监控您的Elasticsearch集群。集成到Elasticsearch中的安全性,监控和管理功能使您可以将Kibana 用作管理集群的控制中心。类似的特征数据汇总和指标生命周期管理 帮助您明智随着时间的推移管理您的数据。

Elasticsearch7.2系列文章:https://www.xugj520.cn/category/ES/

Elasticsearch7.2中文文档翻译(一):Elasticsearch简介相关推荐

  1. php to es7,只需五步 集成新版 Elasticsearch7.9 中文搜索 到你的 Laravel7 项目

    只需五步骤: 启动 集成 ik 中文分词插件的 Elasticsearch7.9 Docker 镜像 Laravel7 配置 Scout 配置 Model 模型 导入数据 搜索 PHP进阶30K资料, ...

  2. 【ES】Elasticsearch 简介

      大数据开发经常用到 Elasticesearch,今天做一下介绍. 1.Elasticsearch 简介 Elaticsearch,简称为 ES, 是一个开源的高扩展的分布式全文检索引擎,特点: ...

  3. ElasticSearch简介及ElasticSearch部署、原理和使用介绍

    ElasticSearch简介及ElasticSearch部署.原理和使用介绍 第一章:elasticsearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式 ...

  4. 1、Elasticsearch简介与安装使用

    一.Elastic Stack 是什么 Elastic Stack 是 ELK Stack 的更新换代产品,通过访问官网,可以看到 Elastic 产品的生态分布情况,如图所示: "ELK& ...

  5. elasticsearch 客户端工具_1分钟系列-Elasticsearch 简介与单机版安装

    Elasticsearch 简介 Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本.数字.地理空间.结构化和非结构化数据.Elasticsearch 在 A ...

  6. pyhanlp 中文词性标注与分词简介

    pyhanlp 中文词性标注与分词简介 pyhanlp实现的分词器有很多,同时pyhanlp获取hanlp中分词器也有两种方式 第一种是直接从封装好的hanlp类中获取,这种获取方式一共可以获取五种分 ...

  7. Py之SnowNLP:SnowNLP中文处理包的简介、安装、使用方法、代码实现之详细攻略

    Py之SnowNLP:SnowNLP中文处理包的简介.安装.使用方法.代码实现之详细攻略 目录 SnowNLP的简介 SnowNLP的安装 SnowNLP的使用方法 关于训练 SnowNLP的简介 s ...

  8. Elasticsearch 简介

    Elasticsearch 是一款稳定高效的分布式搜索和分析引擎,它的底层基于 Lucene,并提供了友好的 RESTful API 来对数据进行操作,还有比较重要的一点是, Elasticsearc ...

  9. SQLAlchemy 中文文档翻译计划

    SQLAlchemy 中文文档翻译计划已启动. Python 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质.交流群:467338606. 希望大家能够勇敢地去翻译和改进翻译.虽然我 ...

最新文章

  1. Typedef用法学习
  2. 怎么把数字替换成空格_剑指offer04:替换空格
  3. esxi远程管理端口_如何在 vmware esxi 中开放 VNC功能及端口实现远程管理 完整篇...
  4. Spring MVC @SessionAttributes注解
  5. oracle rman optimization,ORACLE rman设置
  6. 关于大型网站技术演进的思考(四)--存储的瓶颈(4)
  7. 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用
  8. java 开发工具及其他使用工具介绍
  9. 【最新原创】中国移动(中国联通)_通信账单,详单,个人信息抓取爬虫代码
  10. Lora网关节点汇聚传感器数据
  11. python librosa将哼唱旋律转换为音符
  12. python 自动问答系统_问答系统介绍
  13. 樊登读书搞定读后感_樊登读书会《搞定》听后感
  14. 心得 ~ 使用 zlib库 解压缩 zip文件
  15. Chapter2.4:数学模型考研参考题
  16. 一升的眼泪剧情和图片(转贴)
  17. 以下使用计算机的不良习惯,1.以下使用计算机的不好习惯是( )。 A. 关机前退出所有正在执行的应用程序 B. 使用标准的文件扩展名 C....
  18. 就算是假期也全力以赴,学习不能停
  19. 卷积神经网络处理一维信号(故障诊断)
  20. 选择法排序的两种方法

热门文章

  1. 简单学习Java中的抽象语法树(AST)
  2. Ubuntu Desktop 安装 VMware Workstation for Linux虚拟机
  3. R语言基础(用最简单的方式了解学习R语言)
  4. 网易星球区块链靠谱吗?看着点就知道
  5. json对象与json字符串互转,ajax各常见函数
  6. sql 拆分字符串, 表值函数f_split的使用
  7. 使用 MoveIt 控制自己的真实机械臂【4】——了解 MoveIt 的轨迹规划实现机制
  8. 分享电脑便捷妙招,电脑小白们快码住
  9. python画树林_在Python 3中使用深度森林(Deep Forest)进行分类
  10. Android studio UML建模