Elasticsearch 功能
Elasticsearch 是一种分布式、RESTful 的搜索和分析引擎,它集中存储您的数据,以便您可以搜索、索引和分析各种形状和大小的数据。
管理和运营
管理和运营
可扩展性和弹性
Elasticsearch 在分布式环境中运行,从一开始就为永久的安心而设计。我们的集群会随着您的需求而增长——只需添加另一个节点即可。
集群和高可用性
集群是一个或多个节点(服务器)的集合,它们共同保存您的所有数据,并在所有节点上提供联合索引和搜索功能。 Elasticsearch 集群具有主分片和副本分片,以便在节点发生故障时提供故障转移。当主分片出现故障时,副本将取而代之。
了解有关集群和高可用性的信息自动节点恢复
当节点因任何原因(无论是故意的还是其他的)离开集群时,主节点会通过用副本替换该节点并重新平衡分片来做出反应。这些操作旨在保护集群免受数据丢失,方法是确保尽快完全复制每个分片。
了解有关节点分配的信息水平扩展
随着您的使用量增长,Elasticsearch 会与您一起扩展。添加更多数据,添加更多用例,当您开始耗尽资源时,只需向集群添加另一个节点即可提高其容量和可靠性。并且当您向集群添加更多节点时,它会自动分配副本分片,以便为未来做好准备。
了解有关水平扩展的信息机架感知
您可以使用自定义节点属性作为感知属性,使 Elasticsearch 在分配分片时考虑您的物理硬件配置。如果 Elasticsearch 知道哪些节点在同一物理服务器、同一机架或同一区域中,它可以分发主分片及其副本分片,以最大限度地减少在发生故障时丢失所有分片副本的风险。
了解有关分配感知的信息灾难恢复:如果主集群发生故障,则辅助集群可以用作热备份。
地理位置接近:读取可以在本地提供,从而减少网络延迟。
跨数据中心复制
跨数据中心复制一直是 Elasticsearch 上任务关键型应用程序的要求,以前部分是通过其他技术解决的。借助 Elasticsearch 中的跨集群复制,无需其他技术即可跨数据中心、地理区域或 Elasticsearch 集群复制数据。
阅读有关跨数据中心复制的信息管理和运营
管理
Elasticsearch 配备了各种管理工具和 API,可以完全控制数据、用户、集群操作等。
从快照恢复
使用云对象存储的 Elasticsearch 集群现在可以传输某些数据,例如来自 ES 节点和对象存储的分片复制和分片恢复,而不是在 ES 节点之间传输数据,从而降低数据传输和存储成本。
了解从快照恢复索引生命周期管理
索引生命周期管理 (ILM) 允许用户定义和自动化策略,以控制索引在四个阶段中的每个阶段的生命周期,以及在每个阶段对索引执行的一组操作。这可以更好地控制运营成本,因为可以将数据放入不同的资源层。
了解有关 ILM 的信息热:主动更新和查询
温:不再更新,但仍会查询
冷/冻结:不再更新并且很少查询(可以搜索,但速度较慢)
删除:不再需要
数据层
数据层是通过节点角色属性将数据划分为热节点、温节点和冷节点的正式方法,该属性会自动定义节点的索引生命周期管理策略。通过分配热节点、温节点和冷节点角色,您可以大大简化和自动化将数据从成本较高、性能较高的存储移动到成本较低、性能较低的存储的过程,而不会影响洞察力。
了解有关数据层的信息- 热:在性能最高的实例上主动更新和查询
温:在性能较低的实例上较少查询的数据
冷:只读,很少查询,显著减少存储,且不降低性能,由可搜索快照提供支持
快照生命周期管理
作为后台快照管理器,快照生命周期管理 (SLM) API 允许管理员定义对 Elasticsearch 集群进行快照的频率。借助专用 UI,SLM 使用户能够配置 SLM 策略的保留期限,并自动创建、计划和删除快照,从而确保以足够的频率对给定集群进行适当的备份,以便能够按照客户 SLA 进行恢复。
了解有关 SLM 的信息快照和恢复
快照是从正在运行的 Elasticsearch 集群中进行的备份。您可以对单个索引或整个集群进行快照,并将快照存储在共享文件系统上的存储库中。还有可用的插件支持远程存储库。
了解有关快照和恢复的信息可搜索的快照
可搜索快照使您能够直接查询快照,而完成典型的从快照恢复所需的时间仅为一小部分。这是通过仅读取每个快照索引的必要部分来完成请求来实现的。结合冷层,可搜索快照可以通过在基于对象的存储系统(如 Amazon S3、Azure Storage 或 Google Cloud Storage)中备份副本分片,同时仍然提供对它们的完全搜索访问权限,从而显著降低数据存储成本。
了解有关可搜索快照的信息数据汇总
保留历史数据进行分析非常有用,但由于归档大量数据的财务成本通常会避免这样做。因此,保留期限是由财务现实而非广泛历史数据的有用性驱动的。汇总功能提供了一种总结和存储历史数据的方法,以便仍然可以将其用于分析,但存储成本仅为原始数据的一小部分。
了解有关汇总的信息转换
转换是二维表格数据结构,可使索引数据更易于理解。转换执行聚合,将您的数据透视到新的以实体为中心的索引中。通过转换和总结您的数据,可以以其他方式可视化和分析数据,包括作为其他机器学习分析的来源。
了解有关转换的信息升级助手 API
升级助手 API 允许您检查 Elasticsearch 集群的升级状态,并为在以前的主要版本中创建的索引重建索引。该助手可帮助您为下一个主要版本的 Elasticsearch 做准备。
了解有关升级助手 API 的信息API 密钥管理
API 密钥的管理需要足够灵活,以允许用户管理自己的密钥,从而限制对其各自角色的访问。通过专用 UI,用户可以创建 API 密钥,并使用它们来提供与 Elasticsearch 交互时的长期凭据,这在自动化脚本或与其他软件的工作流集成中很常见。
了解有关管理 API 密钥的信息管理和运营
安全
Elastic Stack 的安全功能为合适的人员提供合适的访问权限。 IT、运营和应用程序团队依靠这些功能来管理善意的用户并阻止恶意行为者,而高管和客户可以放心,存储在 Elastic Stack 中的数据是安全可靠的。
Elasticsearch 安全设置
某些设置很敏感,并且仅依赖文件系统权限来保护它们的值是不够的。对于此用例,Elasticsearch 提供了一个密钥库,以防止对敏感的集群设置进行不必要的访问。密钥库可以选择使用密码保护以提高安全性。
详细了解安全设置静态加密支持
虽然 Elastic Stack 不会开箱即用地实现静态数据加密,但建议在所有主机上配置磁盘级加密。此外,快照目标还必须确保静态数据已加密。
基于属性的访问控制 (ABAC)
Elastic Stack 的安全功能还提供基于属性的访问控制 (ABAC) 机制,使您可以使用属性来限制对搜索查询和聚合中的文档的访问。这允许您在角色定义中实施访问策略,以便用户只有在拥有所有必需属性时才能读取特定文档。
了解有关 ABAC 的信息字段和文档级安全
字段级安全性限制用户具有读取访问权限的字段。特别是,它限制了可以从基于文档的读取 API 访问哪些字段。
了解有关字段级安全性的信息文档级安全性限制用户具有读取访问权限的文档。特别是,它限制了可以从基于文档的读取 API 访问哪些文档。
了解有关文档级安全性的信息IP 过滤
您可以对应用程序客户端、节点客户端或传输客户端应用 IP 过滤,以及尝试加入集群的其他节点。如果节点的 IP 地址在黑名单上,Elasticsearch 安全功能允许连接到 Elasticsearch,但会立即断开连接,并且不处理任何请求。
IP 地址或范围
xpack.security.transport.filter.allow: "192.168.0.1" xpack.security.transport.filter.deny: "192.168.0.0/24"
白名单
xpack.security.transport.filter.allow: [ "192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4" ] xpack.security.transport.filter.deny: _all
IPv6
xpack.security.transport.filter.allow: "2001:0db8:1234::/48" xpack.security.transport.filter.deny: "1234:0db8:85a3:0000:0000:8a2e:0370:7334"
主机名
xpack.security.transport.filter.allow: localhost xpack.security.transport.filter.deny: '*.google.com'了解 IP 过滤
安全领域
Elastic Stack 的安全功能通过使用 realm 和一个或多个基于令牌的身份验证服务来验证用户身份。realm 用于根据身份验证令牌解析和验证用户。安全功能提供了许多内置的 realm。
了解安全 realm单点登录 (SSO)
Elastic Stack 支持使用 Elasticsearch 作为后端服务将 SAML 单点登录 (SSO) 集成到 Kibana 中。SAML 身份验证允许用户使用外部身份提供商(例如 Okta 或 Auth0)登录到 Kibana。
了解 SSO管理和运营
警报
Elastic Stack 的 警报功能 使您能够充分利用 Elasticsearch 查询语言来识别数据中您感兴趣的变化。换句话说,如果您可以在 Elasticsearch 中查询某些内容,就可以对其发出警报。
高可用性、可扩展的警报
大型和小型组织都信任 Elastic Stack 来处理他们的警报需求是有原因的。通过可靠且安全地从任何来源、以任何格式摄取数据,分析师可以实时搜索、分析和可视化关键数据,所有这些都具有自定义的、可靠的警报。
了解警报通过电子邮件、Webhook、IBM Resilient、Jira、Microsoft Teams、PagerDuty、ServiceNow、Slack、xMatters 发送通知
将警报与内置的电子邮件、IBM Resilient、Jira、Microsoft Teams、PagerDuty、ServiceNow、xMatters 和 Slack 集成。通过 Webhook 输出与任何其他第三方系统集成。
了解警报通知选项管理和运营
客户端
Elasticsearch 允许您以您最舒适的任何方式处理数据。凭借其 RESTful API、语言客户端、强大的 DSL 以及更多功能(甚至是 SQL),我们非常灵活,因此您不会受限。
语言客户端
Elasticsearch 使用标准的 RESTful API 和 JSON。我们还构建和维护多种语言的客户端,例如 Java、Python、.NET、SQL 和 PHP。此外,我们的社区还贡献了更多。它们易于使用,感觉自然,而且就像 Elasticsearch 一样,不会限制您可能想用它们做什么。
浏览可用的语言客户端Elasticsearch DSL
Elasticsearch 提供了一个基于 JSON 的完整查询 DSL(领域特定语言)来定义查询。查询 DSL 为全文搜索提供了强大的搜索选项,包括词项和短语匹配、模糊性、通配符、正则表达式、嵌套查询、地理查询等等。
了解 Elasticsearch DSLGET /_search { "query": { "match" : { "message" : { "query" : "this is a test", "operator" : "and" } } } }
Elasticsearch SQL
Elasticsearch SQL 是一项允许针对 Elasticsearch 实时执行类似 SQL 的查询的功能。无论是使用 REST 接口、命令行还是 JDBC,任何客户端都可以使用 SQL 在 Elasticsearch 内部本地搜索和聚合数据。
了解 Elasticsearch SQLJDBC 客户端
Elasticsearch SQL JDBC 驱动程序是 Elasticsearch 的功能丰富的完整 JDBC 驱动程序。它是 Type 4 驱动程序,这意味着它是一个平台独立的、独立的、直接到数据库的纯 Java 驱动程序,可将 JDBC 调用转换为 Elasticsearch SQL。
了解 JDBC 客户端ODBC 客户端
Elasticsearch SQL ODBC 驱动程序是 Elasticsearch 的功能丰富的 3.80 ODBC 驱动程序。它是一个核心级驱动程序,公开了通过 Elasticsearch SQL ODBC API 访问的所有功能,将 ODBC 调用转换为 Elasticsearch SQL。
了解 ODBC 客户端适用于 Elasticsearch 的 Tableau 连接器
适用于 Elasticsearch 的 Tableau 连接器使 Tableau Desktop 和 Tableau Server 用户可以轻松访问 Elasticsearch 中的数据。
下载 Tableau 连接器管理和运营
REST API
Elasticsearch 提供了一个全面而强大的 REST API,您可以使用它与您的集群进行交互。
搜索 API
Elasticsearch 搜索 API 允许您实现的不仅仅是全文搜索。它们还可以帮助您实现建议器(词项、短语、完成等等)、执行排名评估,甚至提供有关文档为什么被搜索返回或未返回的反馈。
浏览可用的搜索 API指标聚合
桶聚合
管道聚合
矩阵聚合
累积基数聚合
地理网格聚合
管理 API
使用各种与管理相关的 API 以编程方式管理您的 Elasticsearch 集群。有用于管理索引和映射、集群和节点、许可和安全性的 API,等等。如果您需要以人类可读的格式显示结果,只需使用 cat API。
管理和运营
集成
作为一个开源的、与语言无关的应用程序,通过插件和集成很容易扩展 Elasticsearch 的功能。
Elasticsearch-Hadoop
Elasticsearch for Apache Hadoop(Elasticsearch-Hadoop 或 ES-Hadoop)是一个开源的、独立的、自包含的小型库,允许 Hadoop 作业与 Elasticsearch 交互。使用它可以轻松构建动态的、嵌入式的搜索应用程序来为您的 Hadoop 数据提供服务,或者使用全文、地理空间查询和聚合来执行深度、低延迟的分析。
了解 ES-HadoopApache Hive
Elasticsearch for Apache Hadoop 为 Apache Hive 提供一流的支持,Apache Hive 是 Hadoop 的数据仓库系统,它有助于轻松进行数据汇总、临时查询以及对存储在与 Hadoop 兼容的文件系统中的大型数据集进行分析。
了解 Apache Hive 集成Apache Spark
Elasticsearch for Apache Hadoop 为 Apache Spark 提供一流的支持,Apache Spark 是一个快速且通用的集群计算系统。它在 Java、Scala 和 Python 中提供高级 API,以及一个支持通用执行图的优化引擎。
了解 Apache Spark 集成插件和集成
作为一个开源的、与语言无关的应用程序,通过插件和集成很容易扩展 Elasticsearch 的功能。插件是一种以自定义方式增强核心 Elasticsearch 功能的方法,而集成是使 Elasticsearch 更易于使用的外部工具或模块。
浏览可用的 Elasticsearch 插件API 扩展插件
警报插件
分析插件
发现插件
Ingest 插件
管理插件
映射器插件
安全插件
快照/还原存储库插件
存储插件
管理和运营
部署
公共云、私有云或两者之间的某个位置 — 我们使您可以轻松运行和管理 Elasticsearch。
下载并安装
入门比以往任何时候都容易。只需下载并安装 Elasticsearch 和 Kibana 作为存档或使用软件包管理器即可。您将立即开始索引、分析和可视化数据。通过默认发行版,您还可以使用免费的 30 天试用版测试机器学习、安全、图形分析等 Platinum 功能。
下载 Elastic StackElastic Cloud
Elastic Cloud 是我们不断增长的 SaaS 产品系列,它使您可以轻松地在云中部署、操作和扩展 Elastic 产品和解决方案。从易于使用托管和管理的 Elasticsearch 体验到强大、开箱即用的搜索解决方案,Elastic Cloud 是您无缝地让 Elastic 为您工作的跳板。免费试用我们的任何 Elastic Cloud 产品 14 天 — 无需信用卡。
开始使用 Elastic Cloud开始免费试用 Elasticsearch Service
Elastic Cloud Enterprise
借助 Elastic Cloud Enterprise (ECE),您可以在任何规模、任何基础设施上配置、管理和监控 Elasticsearch 和 Kibana,同时从单个控制台管理所有内容。选择您运行 Elasticsearch 和 Kibana 的位置:物理硬件、虚拟环境、私有云、公共云中的私有区域或仅仅是普通的公共云(例如,Google、Azure、AWS)。我们涵盖了所有这些。
免费试用 ECE 30 天Elastic Cloud on Kubernetes
Elastic Cloud on Kubernetes (ECK) 基于 Kubernetes Operator 模式构建,扩展了基本的 Kubernetes 编排功能,以支持在 Kubernetes 上设置和管理 Elasticsearch 和 Kibana。借助 Elastic Cloud on Kubernetes,简化了在 Kubernetes 中运行 Elasticsearch 的部署、升级、快照、扩展、高可用性、安全性等流程。
使用 Elastic Cloud on Kubernetes 部署提取和丰富
提取和丰富
提取
以您想要的任何方式将数据导入 Elastic Stack。使用 RESTful API、语言客户端、Ingest 节点、轻量级 shipper 或 Logstash。您不限于一系列语言,而且由于我们是开源的,因此您甚至不受可以摄取的数据类型的限制。如果您需要传输独特的数据类型,我们会提供用于创建您自己的独特摄取方法的库和步骤。如果您愿意,您可以将它们与社区共享,这样下一个人就不必重新发明轮子了。
客户端和 API
Elasticsearch 使用标准的 RESTful API 和 JSON。我们还构建和维护多种语言的客户端,例如 Java、Python、.NET、SQL 和 PHP。此外,我们的社区还贡献了更多。它们易于使用,感觉自然,而且就像 Elasticsearch 一样,不会限制您可能想用它们做什么。
提取节点
Elasticsearch 提供了多种节点类型,其中一种专门用于摄取数据。摄取节点可以执行预处理管道,该管道由一个或多个摄取处理器组成。根据摄取处理器执行的操作类型和所需的资源,拥有仅执行此特定任务的专用摄取节点可能是有意义的。
Beats
Beats 是开源数据传输工具,您将其作为代理安装在服务器上,以将操作数据发送到 Elasticsearch 或 Logstash。Elastic 提供了 Beats 用于捕获各种常见的日志、指标和其他各种数据类型。
Auditbeat 用于 Linux 审计日志
Filebeat 用于日志文件
Functionbeat 用于云数据
Heartbeat 用于可用性数据
Journalbeat 用于 systemd 日志
Metricbeat 用于基础设施指标
Packetbeat 用于网络流量
Winlogbeat 用于 Windows 事件日志
Logstash
Logstash 是一个开源数据收集引擎,具有实时管道功能。Logstash 可以动态地统一来自不同来源的数据,并将数据规范化到您选择的目标。清理并民主化您的所有数据,以用于各种高级下游分析和可视化用例。
社区传送器
如果您有特定的用例需要解决,我们鼓励您创建一个社区 Beat。我们已经创建了一个基础架构来简化这个过程。完全用 Go 编写的 libbeat 库提供了所有 Beats 用来将数据发送到 Elasticsearch、配置输入选项、实现日志记录等功能的 API。
借助 100 多个社区贡献的 Beats,有用于 Cloudwatch 日志和指标、GitHub 活动、Kafka 主题、MySQL、MongoDB Prometheus、Apache、Twitter 等的代理。
探索可用的社区开发的 Beats提取和丰富
数据丰富
借助各种分析器、分词器、过滤器和丰富选项,Elasticsearch 将原始数据转换为有价值的信息。
Elastic 通用模式
使用 Elastic 通用架构 (ECS) 统一分析来自不同来源的数据。检测规则、机器学习作业、仪表板和其他安全内容可以更广泛地应用,搜索可以更精细地制定,并且字段名称更容易记住。
处理器
使用摄取节点在实际文档索引发生之前预处理文档。摄取节点拦截批量和索引请求,应用转换,然后将文档传递回索引或批量 API。摄取节点提供 25 多个不同的处理器,包括 append、convert、date、dissect、drop、fail、grok、join、remove、set、split、sort、trim 等。
匹配丰富处理器
匹配摄取处理器允许用户在摄取时查找数据,并指示从哪个索引提取丰富的数据。这有助于需要向其数据添加一些元素的 Beats 用户——用户可以直接查阅摄取管道,而不是从 Beats 转向 Logstash。用户还可以使用处理器规范化数据,以获得更好的分析和更常见的查询。
地理匹配丰富处理器
地理匹配丰富处理器是一种实用且方便的方式,允许用户通过利用其地理数据来改进其搜索和聚合功能,而无需在地理坐标术语中定义查询或聚合。与匹配丰富处理器类似,用户可以在摄取时查找数据,并找到从中提取丰富数据的最佳索引。
数据存储
数据存储
灵活性
Elastic Stack 是一个强大的解决方案,几乎可以应用于任何用例。虽然它以其高级搜索功能而闻名,但其灵活的设计使其成为满足许多不同需求的最佳工具,包括文档存储、时间序列分析和指标以及地理空间分析。
数据类型
Elasticsearch 支持文档中字段的多种不同数据类型,每种数据类型都提供自己的多个子类型。这使您可以以最有效和高效的方式存储、分析和利用数据,而不管数据是什么。Elasticsearch 针对以下数据类型进行了优化,其中包括
文本
形状
数字
向量
直方图
日期/时间序列
扁平化字段
地理点/地理形状
非结构化数据 (JSON)
结构化数据
全文搜索(倒排索引)
Elasticsearch 使用一种称为反向索引的结构,该结构旨在允许非常快速的全文搜索。反向索引由任何文档中出现的所有唯一单词的列表组成,对于每个单词,还包含它出现的文档的列表。要创建反向索引,我们首先将每个文档的内容字段拆分为单独的单词(我们称之为术语或标记),创建一个所有唯一术语的排序列表,然后列出每个术语出现在哪个文档中。
文档存储(非结构化)
Elasticsearch 不要求数据必须是结构化的才能被摄取或分析(尽管结构化会提高速度)。此设计使其易于上手,并且还使 Elasticsearch 成为有效的文档存储。尽管 Elasticsearch 不是 NoSQL 数据库,但它仍然提供类似的功能。
时间序列/分析(列式存储)
反向索引允许查询快速查找搜索词,但排序和聚合需要不同的数据访问模式。它们不是查找术语并查找文档,而是需要能够查找文档并找到其在字段中具有的术语。Doc values 是 Elasticsearch 中磁盘上的数据结构,在文档索引时构建,这使得这种数据访问模式成为可能,从而允许以列方式进行搜索。这使 Elasticsearch 在时间序列和指标分析方面表现出色。
数据存储
安全
安全性不仅限于集群级别。确保数据安全一直到 Elasticsearch 中的字段级别。
字段级和文档级 API 安全
字段级安全性限制用户具有读取访问权限的字段。特别是,它限制了可以从基于文档的读取 API 访问哪些字段。
文档级安全性限制用户具有读取访问权限的文档。特别是,它限制了可以从基于文档的读取 API 访问哪些文档。
了解有关文档级安全性的信息静态数据加密支持
虽然 Elastic Stack 不会开箱即用地实现静态数据加密,但建议在所有主机上配置磁盘级加密。此外,快照目标还必须确保静态数据已加密。
数据存储
管理
Elasticsearch 使您能够完全管理您的集群及其节点、您的索引及其分片,以及最重要的是,其中包含的所有数据。
集群索引
集群是一个或多个节点的集合(服务器),它们共同保存您的所有数据,并在所有节点上提供联合索引和搜索功能。这种架构使其易于水平扩展。Elasticsearch 提供了一个全面且强大的 REST API 和 UI,可用于管理您的集群。
数据快照和恢复
快照是从正在运行的 Elasticsearch 集群中进行的备份。您可以对单个索引或整个集群进行快照,并将快照存储在共享文件系统上的存储库中。还有可用的插件支持远程存储库。
汇总索引
保留历史数据进行分析非常有用,但由于归档大量数据的财务成本通常会避免这样做。因此,保留期限是由财务现实而非广泛历史数据的有用性驱动的。汇总功能提供了一种总结和存储历史数据的方法,以便仍然可以将其用于分析,但存储成本仅为原始数据的一小部分。
搜索和分析
搜索和分析
全文搜索
Elasticsearch 以其强大的全文搜索功能而闻名。它的速度来自于其核心的反向索引,其强大功能来自于其可调优的相关性评分、高级查询 DSL 和广泛的搜索增强功能。
倒排索引
Elasticsearch 使用一种称为反向索引的结构,该结构旨在允许非常快速的全文搜索。反向索引由任何文档中出现的所有唯一单词的列表组成,对于每个单词,还包含它出现的文档的列表。要创建反向索引,我们首先将每个文档的内容字段拆分为单独的单词(我们称之为术语或标记),创建一个所有唯一术语的排序列表,然后列出每个术语出现在哪个文档中。
运行时字段
运行时字段是在查询时评估的字段(读取时架构)。运行时字段可以随时引入或修改,包括在文档索引之后,并且可以定义为查询的一部分。运行时字段通过与索引字段相同的接口暴露给查询,因此字段可以是数据流的某些索引中的运行时字段,也可以是该数据流的其他索引中的索引字段,并且查询不需要知道这一点。虽然索引字段提供了最佳的查询性能,但运行时字段通过在文档索引后引入更改数据结构的灵活性来补充它们。
查找运行时字段
查找运行时字段使您可以通过在两个索引上定义一个链接文档的键,将查找索引中的信息添加到主索引的结果中,从而提供灵活性。与运行时字段一样,此功能在查询时使用,可提供灵活的数据丰富。
相关性评分
相似度(相关性评分/排名模型)定义了如何对匹配的文档进行评分。默认情况下,Elasticsearch 使用 BM25 相似度 — 一种高级的、基于 TF/IDF 的相似度,具有内置的 tf 归一化,最适合短字段(如名称)— 但还有许多其他相似度选项可用。
向量搜索 (ANN)
基于 Lucene 9 新的基于 HNSW 算法的近似最近邻或 ANN 支持,新的 _knn_search API 端点通过向量相似性促进了更可扩展和更高性能的搜索。它通过在召回率和性能之间进行权衡来实现这一点,即通过对召回率进行较小的妥协,在非常大的数据集上实现更好的性能(与现有的暴力向量相似性方法相比)。
查询 DSL
全文搜索需要强大的查询语言。Elasticsearch 提供了一个基于 JSON 的完整查询 DSL(领域特定语言)来定义查询。创建简单的查询来匹配术语和短语,或开发可以组合多个查询的复合查询。此外,可以在查询时应用过滤器,以在对文档进行相关性评分之前删除文档。
高亮显示
高亮器使您能够从搜索结果中的一个或多个字段中获取高亮显示的代码段,以便您可以向用户显示查询匹配的位置。当您请求高亮显示时,响应包含每个搜索命中的附加高亮显示元素,其中包括高亮显示的字段和高亮显示的代码段。
建议器(你是不是要找)
短语建议器通过在术语建议器的基础上构建额外的逻辑来选择整个更正后的短语,而不是基于 n 元语法语言模型加权的单个标记,从而为您的搜索添加了“您是不是要找”功能。实际上,此建议器将能够根据共现和频率更好地决定选择哪个标记。
过滤器
颠覆了使用查询查找索引中存储的文档的标准搜索模型,percolator 可用于将文档与索引中存储的查询进行匹配。percolate
查询本身包含将用作查询的文档,以与存储的查询进行匹配。
查询分析器/优化器
配置文件 API 提供有关搜索请求中各个组件执行的详细计时信息。它提供了对搜索请求如何在低级别执行的深入了解,以便您可以了解某些请求速度缓慢的原因并采取措施进行改进。
动态更新的同义词
使用分析器重载 API,您可以触发同义词定义的重载。将重新加载配置的同义词文件的内容,并更新过滤器使用的同义词定义。可以在一个或多个索引上运行 _reload_search_analyzers API,它将触发从配置的文件中重新加载同义词。
结果置顶
提升选定的文档,使其排名高于与给定查询匹配的文档。此功能通常用于引导搜索者找到经过策划的文档,这些文档的排名高于任何搜索的“自然”匹配。提升或“置顶”的文档是使用存储在 _id 字段中的文档 ID 来标识的。
搜索和分析
分析
搜索数据只是一个开始。Elasticsearch 的强大分析功能使您能够获取搜索到的数据并找到更深层的含义。无论是通过聚合结果、查找文档之间的关系还是基于阈值创建警报,这一切都建立在强大的搜索功能的基础之上。
指标聚合
桶聚合
管道聚合
矩阵聚合
地理网格聚合
随机采样器聚合
图表探索
Graph 探索 API 使您能够提取和汇总有关 Elasticsearch 索引中的文档和术语的信息。了解此 API 行为的最佳方法是在 Kibana 中使用 Graph 来探索连接。
搜索和分析
机器学习
Elastic 机器学习功能会自动实时建模您的 Elasticsearch 数据的行为 — 趋势、周期性等 — 以更快地识别问题、简化根本原因分析并减少误报。
时间序列预测
在 Elastic 机器学习为您的数据创建正常行为基线后,您可以使用该信息来推断未来行为。然后创建一个预测,以估计特定未来日期的时间序列值,或估计时间序列值在未来发生的概率
时间序列异常检测
Elastic 机器学习功能通过在数据中创建正常行为的精确基线并识别数据中的异常模式,实现时间序列数据分析的自动化。使用专有的机器学习算法检测、评分异常,并将异常与数据中具有统计意义的影响因素相关联。
与值、计数或频率中的时间偏差相关的异常
统计稀有性
总体成员的异常行为