Elasticsearch 功能

Elasticsearch 是一种分布式、RESTful 的搜索和分析引擎,它集中存储您的数据,以便您可以搜索、索引和分析各种形状和大小的数据。

管理和运营

管理和运营

可扩展性和弹性

Elasticsearch 在分布式环境中运行,从一开始就为永久的安心而设计。我们的集群会随着您的需求而增长——只需添加另一个节点即可。

集群和高可用性

集群是一个或多个节点(服务器)的集合,它们共同保存您的所有数据,并在所有节点上提供联合索引和搜索功能。 Elasticsearch 集群具有主分片和副本分片,以便在节点发生故障时提供故障转移。当主分片出现故障时,副本将取而代之。

了解有关集群和高可用性的信息

自动节点恢复

当节点因任何原因(无论是故意的还是其他的)离开集群时,主节点会通过用副本替换该节点并重新平衡分片来做出反应。这些操作旨在保护集群免受数据丢失,方法是确保尽快完全复制每个分片。

了解有关节点分配的信息

自动数据再平衡

Elasticsearch 集群中的主节点将自动决定将哪些分片分配给哪些节点,以及何时在节点之间移动分片以重新平衡集群。

了解有关自动数据重新平衡的信息

水平扩展

随着您的使用量增长,Elasticsearch 会与您一起扩展。添加更多数据,添加更多用例,当您开始耗尽资源时,只需向集群添加另一个节点即可提高其容量和可靠性。并且当您向集群添加更多节点时,它会自动分配副本分片,以便为未来做好准备。

了解有关水平扩展的信息

机架感知

您可以使用自定义节点属性作为感知属性,使 Elasticsearch 在分配分片时考虑您的物理硬件配置。如果 Elasticsearch 知道哪些节点在同一物理服务器、同一机架或同一区域中,它可以分发主分片及其副本分片,以最大限度地减少在发生故障时丢失所有分片副本的风险。

了解有关分配感知的信息

跨集群复制

跨集群复制 (CCR) 功能支持将远程集群中的索引复制到本地集群。此功能可用于常见的生产用例。

了解有关 CCR 的信息
  • 灾难恢复:如果主集群发生故障,则辅助集群可以用作热备份。

  • 地理位置接近:读取可以在本地提供,从而减少网络延迟。

跨数据中心复制

跨数据中心复制一直是 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)中备份副本分片,同时仍然提供对它们的完全搜索访问权限,从而显著降低数据存储成本。

了解有关可搜索快照的信息

数据汇总

保留历史数据进行分析非常有用,但由于归档大量数据的财务成本通常会避免这样做。因此,保留期限是由财务现实而非广泛历史数据的有用性驱动的。汇总功能提供了一种总结和存储历史数据的方法,以便仍然可以将其用于分析,但存储成本仅为原始数据的一小部分。

了解有关汇总的信息
    screenshot-rollups-management-ui-feature-page.jpg

数据流

数据流是一种方便且可扩展的方式,用于摄取、搜索和管理连续生成的时间序列数据。

详细了解数据流

转换

转换是二维表格数据结构,可使索引数据更易于理解。转换执行聚合,将您的数据透视到新的以实体为中心的索引中。通过转换和总结您的数据,可以以其他方式可视化和分析数据,包括作为其他机器学习分析的来源。

了解有关转换的信息

升级助手 API

升级助手 API 允许您检查 Elasticsearch 集群的升级状态,并为在以前的主要版本中创建的索引重建索引。该助手可帮助您为下一个主要版本的 Elasticsearch 做准备。

了解有关升级助手 API 的信息

API 密钥管理

API 密钥的管理需要足够灵活,以允许用户管理自己的密钥,从而限制对其各自角色的访问。通过专用 UI,用户可以创建 API 密钥,并使用它们来提供与 Elasticsearch 交互时的长期凭据,这在自动化脚本或与其他软件的工作流集成中很常见。

了解有关管理 API 密钥的信息

管理和运营

安全

Elastic Stack 的安全功能为合适的人员提供合适的访问权限。 IT、运营和应用程序团队依靠这些功能来管理善意的用户并阻止恶意行为者,而高管和客户可以放心,存储在 Elastic Stack 中的数据是安全可靠的。

Elasticsearch 安全设置

某些设置很敏感,并且仅依赖文件系统权限来保护它们的值是不够的。对于此用例,Elasticsearch 提供了一个密钥库,以防止对敏感的集群设置进行不必要的访问。密钥库可以选择使用密码保护以提高安全性。

详细了解安全设置

加密通信

通过使用 SSL/TLS 进行流量加密、节点身份验证证书等,可以阻止对 Elasticsearch 节点数据的基于网络的攻击。

了解有关加密通信的信息

静态加密支持

虽然 Elastic Stack 不会开箱即用地实现静态数据加密,但建议在所有主机上配置磁盘级加密。此外,快照目标还必须确保静态数据已加密。

基于角色的访问控制 (RBAC)

基于角色的访问控制 (RBAC) 使您可以通过将权限分配给角色并将角色分配给用户或组来授权用户。

了解有关 RBAC 的信息
    screenshot-security-users-roles-feature-page.jpg

基于属性的访问控制 (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 安全功能的开箱即用支持,您可以创建自定义 realm 来验证用户身份。

了解第三方安全

管理和运营

警报

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 输出与任何其他第三方系统集成。

了解警报通知选项
    screenshot-alerting-actions-integrations-connectors-710-656x369.png

管理和运营

客户端

Elasticsearch 允许您以您最舒适的任何方式处理数据。凭借其 RESTful API、语言客户端、强大的 DSL 以及更多功能(甚至是 SQL),我们非常灵活,因此您不会受限。

语言客户端

Elasticsearch 使用标准的 RESTful API 和 JSON。我们还构建和维护多种语言的客户端,例如 Java、Python、.NET、SQL 和 PHP。此外,我们的社区还贡献了更多。它们易于使用,感觉自然,而且就像 Elasticsearch 一样,不会限制您可能想用它们做什么。

浏览可用的语言客户端

Elasticsearch DSL

Elasticsearch 提供了一个基于 JSON 的完整查询 DSL(领域特定语言)来定义查询。查询 DSL 为全文搜索提供了强大的搜索选项,包括词项和短语匹配、模糊性、通配符、正则表达式、嵌套查询、地理查询等等。

了解 Elasticsearch DSL
GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "this is a test",
                "operator" : "and"
            }
        }
    }
}

Elasticsearch SQL

Elasticsearch SQL 是一项允许针对 Elasticsearch 实时执行类似 SQL 的查询的功能。无论是使用 REST 接口、命令行还是 JDBC,任何客户端都可以使用 SQL 在 Elasticsearch 内部本地搜索和聚合数据。

了解 Elasticsearch SQL
    screenshot-sql-search-feature-page.jpg

事件查询语言 (EQL)

凭借查询与特定条件匹配的事件序列的功能,事件查询语言 (EQL) 专为安全分析等用例而构建。

了解 EQL

JDBC 客户端

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 连接器

CLI 工具

Elasticsearch 提供了许多用于从命令行配置安全性和执行其他任务的工具。

浏览不同的 CLI 工具

管理和运营

REST API

Elasticsearch 提供了一个全面而强大的 REST API,您可以使用它与您的集群进行交互。

文档 API

使用文档 API 对单个文档或跨多个文档执行 CRUD 操作(创建、读取、更新、删除)。

浏览可用的文档 API

搜索 API

Elasticsearch 搜索 API 允许您实现的不仅仅是全文搜索。它们还可以帮助您实现建议器(词项、短语、完成等等)、执行排名评估,甚至提供有关文档为什么被搜索返回或未返回的反馈。

浏览可用的搜索 API

聚合 API

聚合框架有助于提供基于搜索查询的聚合数据。它基于简单的构建块,称为聚合,可以组合这些聚合以构建复杂的数据摘要。聚合可以看作是在一组文档上构建分析信息的单位工作。

浏览可用的聚合 API
  • 指标聚合

  • 桶聚合

  • 管道聚合

  • 矩阵聚合

  • 累积基数聚合

  • 地理网格聚合

提取 API

使用 ingest API 对您的数据管道执行 CRUD 操作,或者使用模拟管道 API 对一组文档执行特定的管道。

浏览可用的 ingest API

管理 API

使用各种与管理相关的 API 以编程方式管理您的 Elasticsearch 集群。有用于管理索引和映射、集群和节点、许可和安全性的 API,等等。如果您需要以人类可读的格式显示结果,只需使用 cat API。

管理和运营

集成

作为一个开源的、与语言无关的应用程序,通过插件和集成很容易扩展 Elasticsearch 的功能。

Elasticsearch-Hadoop

Elasticsearch for Apache Hadoop(Elasticsearch-Hadoop 或 ES-Hadoop)是一个开源的、独立的、自包含的小型库,允许 Hadoop 作业与 Elasticsearch 交互。使用它可以轻松构建动态的、嵌入式的搜索应用程序来为您的 Hadoop 数据提供服务,或者使用全文、地理空间查询和聚合来执行深度、低延迟的分析。

了解 ES-Hadoop

Apache 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 集成

商业智能 (BI)

由于其 JDBC 和 ODBC 接口,各种第三方 BI 应用程序都可以使用 Elasticsearch SQL 功能。

浏览可用的 BI 和 SQL 集成

插件和集成

作为一个开源的、与语言无关的应用程序,通过插件和集成很容易扩展 Elasticsearch 的功能。插件是一种以自定义方式增强核心 Elasticsearch 功能的方法,而集成是使 Elasticsearch 更易于使用的外部工具或模块。

浏览可用的 Elasticsearch 插件
  • API 扩展插件

  • 警报插件

  • 分析插件

  • 发现插件

  • Ingest 插件

  • 管理插件

  • 映射器插件

  • 安全插件

  • 快照/还原存储库插件

  • 存储插件

管理和运营

部署

公共云、私有云或两者之间的某个位置 — 我们使您可以轻松运行和管理 Elasticsearch。

下载并安装

入门比以往任何时候都容易。只需下载并安装 Elasticsearch 和 Kibana 作为存档或使用软件包管理器即可。您将立即开始索引、分析和可视化数据。通过默认发行版,您还可以使用免费的 30 天试用版测试机器学习、安全、图形分析等 Platinum 功能。

下载 Elastic Stack

Elastic Cloud

Elastic Cloud 是我们不断增长的 SaaS 产品系列,它使您可以轻松地在云中部署、操作和扩展 Elastic 产品和解决方案。从易于使用托管和管理的 Elasticsearch 体验到强大、开箱即用的搜索解决方案,Elastic Cloud 是您无缝地让 Elastic 为您工作的跳板。免费试用我们的任何 Elastic Cloud 产品 14 天 — 无需信用卡。

开始使用 Elastic Cloud

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 部署

Helm Charts

使用官方 Elasticsearch 和 Kibana Helm Charts 在几分钟内完成部署。

阅读关于官方 Elastic Helm Charts

Docker 容器化

使用 Docker Hub 中的官方容器在 Docker 上运行 Elasticsearch 和 Kibana。

在 Docker 上运行 Elastic Stack

提取和丰富

提取和丰富

提取

以您想要的任何方式将数据导入 Elastic Stack。使用 RESTful API、语言客户端、Ingest 节点、轻量级 shipper 或 Logstash。您不限于一系列语言,而且由于我们是开源的,因此您甚至不受可以摄取的数据类型的限制。如果您需要传输独特的数据类型,我们会提供用于创建您自己的独特摄取方法的库和步骤。如果您愿意,您可以将它们与社区共享,这样下一个人就不必重新发明轮子了。

客户端和 API

Elasticsearch 使用标准的 RESTful API 和 JSON。我们还构建和维护多种语言的客户端,例如 Java、Python、.NET、SQL 和 PHP。此外,我们的社区还贡献了更多。它们易于使用,感觉自然,而且就像 Elasticsearch 一样,不会限制您可能想用它们做什么。

浏览可用的语言客户端和 API

提取节点

Elasticsearch 提供了多种节点类型,其中一种专门用于摄取数据。摄取节点可以执行预处理管道,该管道由一个或多个摄取处理器组成。根据摄取处理器执行的操作类型和所需的资源,拥有仅执行此特定任务的专用摄取节点可能是有意义的。

了解摄取节点

Beats

Beats 是开源数据传输工具,您将其作为代理安装在服务器上,以将操作数据发送到 Elasticsearch 或 Logstash。Elastic 提供了 Beats 用于捕获各种常见的日志、指标和其他各种数据类型。

阅读关于 Beats 的内容

Logstash

Logstash 是一个开源数据收集引擎,具有实时管道功能。Logstash 可以动态地统一来自不同来源的数据,并将数据规范化到您选择的目标。清理并民主化您的所有数据,以用于各种高级下游分析和可视化用例。

阅读关于 Logstash 的内容

社区传送器

如果您有特定的用例需要解决,我们鼓励您创建一个社区 Beat。我们已经创建了一个基础架构来简化这个过程。完全用 Go 编写的 libbeat 库提供了所有 Beats 用来将数据发送到 Elasticsearch、配置输入选项、实现日志记录等功能的 API。

阅读 Beats 开发人员指南

借助 100 多个社区贡献的 Beats,有用于 Cloudwatch 日志和指标、GitHub 活动、Kafka 主题、MySQL、MongoDB Prometheus、Apache、Twitter 等的代理。

探索可用的社区开发的 Beats

提取和丰富

数据丰富

借助各种分析器、分词器、过滤器和丰富选项,Elasticsearch 将原始数据转换为有价值的信息。

Elastic 通用模式

使用 Elastic 通用架构 (ECS) 统一分析来自不同来源的数据。检测规则、机器学习作业、仪表板和其他安全内容可以更广泛地应用,搜索可以更精细地制定,并且字段名称更容易记住。

观看关于 Elastic 通用架构的视频
screenshot-security-host-events-monitoring-7-14.jpg

处理器

使用摄取节点在实际文档索引发生之前预处理文档。摄取节点拦截批量和索引请求,应用转换,然后将文档传递回索引或批量 API。摄取节点提供 25 多个不同的处理器,包括 append、convert、date、dissect、drop、fail、grok、join、remove、set、split、sort、trim 等。

了解摄取处理器

分析器

分析是将文本(如任何电子邮件的正文)转换为标记或术语的过程,这些标记或术语将添加到反向索引中以进行搜索。分析由分析器执行,分析器可以是内置分析器,也可以是使用分词器和过滤器的组合为每个索引定义的自定义分析器。

了解数据分析器

示例:标准分析器 (默认)

输入:“The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.”

输出:the 2 quick brown foxes jumped over the lazy dog's bone

分词器

分词器接收字符流,将其分解为单个标记(通常是单个单词),并输出标记流。分词器还负责记录每个术语的顺序或位置(用于短语和单词邻近度查询)以及表示术语的原始单词的起始和结束字符偏移量(用于突出显示搜索片段)。Elasticsearch 有许多内置的分词器,可用于构建自定义分析器。

了解分词器

示例:空白分词器

输入:“The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.”

输出:The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.

过滤器

标记过滤器接受来自分词器的标记流,并且可以修改标记(例如,小写化)、删除标记(例如,删除停用词)或添加标记(例如,同义词)。Elasticsearch 有许多内置的标记过滤器,可用于构建自定义分析器。

了解标记过滤器

字符过滤器用于在字符流传递到分词器之前对其进行预处理。字符过滤器接收原始文本作为字符流,并且可以通过添加、删除或更改字符来转换流。Elasticsearch 有许多内置的字符过滤器,可用于构建自定义分析器。

了解字符过滤器

语言分析器

使用您自己的语言进行搜索。Elasticsearch 提供 30 多种不同的语言分析器,包括许多具有非拉丁字符集的语言,如俄语、阿拉伯语和中文。

探索可用的语言过滤器

动态映射

字段和映射类型无需在使用前定义。得益于动态映射,只需索引文档,即可自动添加新的字段名称。

了解动态映射

匹配丰富处理器

匹配摄取处理器允许用户在摄取时查找数据,并指示从哪个索引提取丰富的数据。这有助于需要向其数据添加一些元素的 Beats 用户——用户可以直接查阅摄取管道,而不是从 Beats 转向 Logstash。用户还可以使用处理器规范化数据,以获得更好的分析和更常见的查询。

了解匹配丰富处理器

地理匹配丰富处理器

地理匹配丰富处理器是一种实用且方便的方式,允许用户通过利用其地理数据来改进其搜索和聚合功能,而无需在地理坐标术语中定义查询或聚合。与匹配丰富处理器类似,用户可以在摄取时查找数据,并找到从中提取丰富数据的最佳索引。

了解地理匹配丰富处理器

数据存储

数据存储

灵活性

Elastic Stack 是一个强大的解决方案,几乎可以应用于任何用例。虽然它以其高级搜索功能而闻名,但其灵活的设计使其成为满足许多不同需求的最佳工具,包括文档存储、时间序列分析和指标以及地理空间分析。

数据类型

Elasticsearch 支持文档中字段的多种不同数据类型,每种数据类型都提供自己的多个子类型。这使您可以以最有效和高效的方式存储、分析和利用数据,而不管数据是什么。Elasticsearch 针对以下数据类型进行了优化,其中包括

了解 Elasticsearch 中的数据类型
  • 文本

  • 形状

  • 数字

  • 向量

  • 直方图

  • 日期/时间序列

  • 扁平化字段

  • 地理点/地理形状

  • 非结构化数据 (JSON)

  • 结构化数据

全文搜索(倒排索引)

Elasticsearch 使用一种称为反向索引的结构,该结构旨在允许非常快速的全文搜索。反向索引由任何文档中出现的所有唯一单词的列表组成,对于每个单词,还包含它出现的文档的列表。要创建反向索引,我们首先将每个文档的内容字段拆分为单独的单词(我们称之为术语或标记),创建一个所有唯一术语的排序列表,然后列出每个术语出现在哪个文档中。

了解反向索引

文档存储(非结构化)

Elasticsearch 不要求数据必须是结构化的才能被摄取或分析(尽管结构化会提高速度)。此设计使其易于上手,并且还使 Elasticsearch 成为有效的文档存储。尽管 Elasticsearch 不是 NoSQL 数据库,但它仍然提供类似的功能。

了解动态映射

时间序列/分析(列式存储)

反向索引允许查询快速查找搜索词,但排序和聚合需要不同的数据访问模式。它们不是查找术语并查找文档,而是需要能够查找文档并找到其在字段中具有的术语。Doc values 是 Elasticsearch 中磁盘上的数据结构,在文档索引时构建,这使得这种数据访问模式成为可能,从而允许以列方式进行搜索。这使 Elasticsearch 在时间序列和指标分析方面表现出色。

了解 doc values

地理空间(BKD 树)

Elasticsearch 使用 Lucene 中的 BKD 树结构来存储地理空间数据。这允许高效分析 地理点(纬度和经度)和 地理形状(矩形和多边形)。

数据存储

安全

安全性不仅限于集群级别。确保数据安全一直到 Elasticsearch 中的字段级别。

字段级和文档级 API 安全

字段级安全性限制用户具有读取访问权限的字段。特别是,它限制了可以从基于文档的读取 API 访问哪些字段。

了解有关字段级安全性的信息

文档级安全性限制用户具有读取访问权限的文档。特别是,它限制了可以从基于文档的读取 API 访问哪些文档。

了解有关文档级安全性的信息

静态数据加密支持

虽然 Elastic Stack 不会开箱即用地实现静态数据加密,但建议在所有主机上配置磁盘级加密。此外,快照目标还必须确保静态数据已加密。

数据存储

管理

Elasticsearch 使您能够完全管理您的集群及其节点、您的索引及其分片,以及最重要的是,其中包含的所有数据。

集群索引

集群是一个或多个节点的集合(服务器),它们共同保存您的所有数据,并在所有节点上提供联合索引和搜索功能。这种架构使其易于水平扩展。Elasticsearch 提供了一个全面且强大的 REST API 和 UI,可用于管理您的集群。

了解集群索引

数据快照和恢复

快照是从正在运行的 Elasticsearch 集群中进行的备份。您可以对单个索引或整个集群进行快照,并将快照存储在共享文件系统上的存储库中。还有可用的插件支持远程存储库。

了解有关快照和恢复的信息

汇总索引

保留历史数据进行分析非常有用,但由于归档大量数据的财务成本通常会避免这样做。因此,保留期限是由财务现实而非广泛历史数据的有用性驱动的。汇总功能提供了一种总结和存储历史数据的方法,以便仍然可以将其用于分析,但存储成本仅为原始数据的一小部分。

了解有关汇总的信息
screenshot-rollups-management-ui.jpg

搜索和分析

搜索和分析

Elasticsearch 以其强大的全文搜索功能而闻名。它的速度来自于其核心的反向索引,其强大功能来自于其可调优的相关性评分、高级查询 DSL 和广泛的搜索增强功能。

倒排索引

Elasticsearch 使用一种称为反向索引的结构,该结构旨在允许非常快速的全文搜索。反向索引由任何文档中出现的所有唯一单词的列表组成,对于每个单词,还包含它出现的文档的列表。要创建反向索引,我们首先将每个文档的内容字段拆分为单独的单词(我们称之为术语或标记),创建一个所有唯一术语的排序列表,然后列出每个术语出现在哪个文档中。

了解反向索引

运行时字段

运行时字段是在查询时评估的字段(读取时架构)。运行时字段可以随时引入或修改,包括在文档索引之后,并且可以定义为查询的一部分。运行时字段通过与索引字段相同的接口暴露给查询,因此字段可以是数据流的某些索引中的运行时字段,也可以是该数据流的其他索引中的索引字段,并且查询不需要知道这一点。虽然索引字段提供了最佳的查询性能,但运行时字段通过在文档索引后引入更改数据结构的灵活性来补充它们。

了解运行时字段

查找运行时字段

查找运行时字段使您可以通过在两个索引上定义一个链接文档的键,将查找索引中的信息添加到主索引的结果中,从而提供灵活性。与运行时字段一样,此功能在查询时使用,可提供灵活的数据丰富。

了解运行时字段

跨集群搜索 (CCS) 功能允许任何节点充当跨多个集群的联合客户端。跨集群搜索节点不会加入远程集群;相反,它会以轻量级的方式连接到远程集群,以执行联合搜索请求。

了解有关 CCS 的信息

相关性评分

相似度(相关性评分/排名模型)定义了如何对匹配的文档进行评分。默认情况下,Elasticsearch 使用 BM25 相似度 — 一种高级的、基于 TF/IDF 的相似度,具有内置的 tf 归一化,最适合短字段(如名称)— 但还有许多其他相似度选项可用。

了解有关相似度模型的信息

向量搜索 (ANN)

基于 Lucene 9 新的基于 HNSW 算法的近似最近邻或 ANN 支持,新的 _knn_search API 端点通过向量相似性促进了更可扩展和更高性能的搜索。它通过在召回率和性能之间进行权衡来实现这一点,即通过对召回率进行较小的妥协,在非常大的数据集上实现更好的性能(与现有的暴力向量相似性方法相比)。

了解有关向量搜索的更多信息

查询 DSL

全文搜索需要强大的查询语言。Elasticsearch 提供了一个基于 JSON 的完整查询 DSL(领域特定语言)来定义查询。创建简单的查询来匹配术语和短语,或开发可以组合多个查询的复合查询。此外,可以在查询时应用过滤器,以在对文档进行相关性评分之前删除文档。

了解有关 Elasticsearch 查询 DSL 的信息

异步搜索 API 使用户可以在后台运行长时间运行的查询、跟踪查询进度并在结果可用时检索部分结果。

了解有关异步搜索的信息

高亮显示

高亮器使您能够从搜索结果中的一个或多个字段中获取高亮显示的代码段,以便您可以向用户显示查询匹配的位置。当您请求高亮显示时,响应包含每个搜索命中的附加高亮显示元素,其中包括高亮显示的字段和高亮显示的代码段。

了解有关高亮显示的信息

键入时搜索(自动完成)

完成建议器提供自动完成/边输入边搜索功能。这是一种导航功能,可在用户键入时将其引导至相关结果,从而提高搜索精度。

了解有关类型前瞻的信息

建议器(你是不是要找)

短语建议器通过在术语建议器的基础上构建额外的逻辑来选择整个更正后的短语,而不是基于 n 元语法语言模型加权的单个标记,从而为您的搜索添加了“您是不是要找”功能。实际上,此建议器将能够根据共现和频率更好地决定选择哪个标记。

了解有关建议器的信息

纠错(拼写检查)

术语建议器是拼写检查的根本,它基于编辑距离建议术语。在建议术语之前,会对提供的建议文本进行分析。每个分析的建议文本标记都会提供建议的术语。

了解有关更正的信息

过滤器

颠覆了使用查询查找索引中存储的文档的标准搜索模型,percolator 可用于将文档与索引中存储的查询进行匹配。percolate 查询本身包含将用作查询的文档,以与存储的查询进行匹配。

了解有关 percolator 的信息

查询分析器/优化器

配置文件 API 提供有关搜索请求中各个组件执行的详细计时信息。它提供了对搜索请求如何在低级别执行的深入了解,以便您可以了解某些请求速度缓慢的原因并采取措施进行改进。

了解有关配置文件 API 的信息

基于权限的搜索结果

字段级安全性文档级安全性将搜索结果限制为仅限用户具有读取权限的内容。特别是,它限制了可以从基于文档的读取 API 访问哪些字段和文档。

动态更新的同义词

使用分析器重载 API,您可以触发同义词定义的重载。将重新加载配置的同义词文件的内容,并更新过滤器使用的同义词定义。可以在一个或多个索引上运行 _reload_search_analyzers API,它将触发从配置的文件中重新加载同义词。

了解有关分析器重载 API 的信息

结果置顶

提升选定的文档,使其排名高于与给定查询匹配的文档。此功能通常用于引导搜索者找到经过策划的文档,这些文档的排名高于任何搜索的“自然”匹配。提升或“置顶”的文档是使用存储在 _id 字段中的文档 ID 来标识的。

了解有关结果置顶的信息

搜索和分析

分析

搜索数据只是一个开始。Elasticsearch 的强大分析功能使您能够获取搜索到的数据并找到更深层的含义。无论是通过聚合结果、查找文档之间的关系还是基于阈值创建警报,这一切都建立在强大的搜索功能的基础之上。

聚合

聚合框架有助于提供基于搜索查询的聚合数据。它基于称为聚合的简单构建块,这些构建块可以组合在一起以构建数据的复杂摘要。可以将聚合视为一个工作单元,该单元在一组文档上构建分析信息。

了解有关聚合的信息
  • 指标聚合

  • 桶聚合

  • 管道聚合

  • 矩阵聚合

  • 地理网格聚合

  • 随机采样器聚合

图表探索

Graph 探索 API 使您能够提取和汇总有关 Elasticsearch 索引中的文档和术语的信息。了解此 API 行为的最佳方法是在 Kibana 中使用 Graph 来探索连接。

了解有关 Graph 探索 API 的信息
screenshot-kibana-graph-feature-page.jpg

搜索和分析

机器学习

Elastic 机器学习功能会自动实时建模您的 Elasticsearch 数据的行为 — 趋势、周期性等 — 以更快地识别问题、简化根本原因分析并减少误报。

时间序列预测

在 Elastic 机器学习为您的数据创建正常行为基线后,您可以使用该信息来推断未来行为。然后创建一个预测,以估计特定未来日期的时间序列值,或估计时间序列值在未来发生的概率

了解有关预测的信息
screenshot-machine-learning-feature-page.jpg

时间序列异常检测

Elastic 机器学习功能通过在数据中创建正常行为的精确基线并识别数据中的异常模式,实现时间序列数据分析的自动化。使用专有的机器学习算法检测、评分异常,并将异常与数据中具有统计意义的影响因素相关联。

了解有关异常检测的信息
  • 与值、计数或频率中的时间偏差相关的异常

  • 统计稀有性

  • 总体成员的异常行为

异常警报

对于难以使用规则和阈值定义的更改,将警报与无监督机器学习功能相结合以查找异常行为。然后使用警报框架中的异常评分,以便在出现问题时收到通知。

阅读有关警报的信息

推理

推理使您不仅可以批量分析,还可以连续使用监督式机器学习流程(如回归或分类)。推理使您能够针对传入数据使用经过训练的机器学习模型。

了解有关推理的信息

语言识别

语言识别是一个经过训练的模型,您可以用来确定文本的语言。您可以在推理处理器中引用语言识别模型。

了解有关语言识别的信息