Elasticsearch 功能

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

您的极速搜索,我们的基础设施

免费试用 Elasticsearch 服务 14 天。无需信用卡。

开始免费试用

管理和运营

管理和运营

可扩展性和弹性

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 存储或 Google Cloud 存储)中备份副本分片,同时仍然提供对它们的完全搜索访问权限,从而显着降低数据存储成本。

了解可搜索快照

数据汇总

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

了解汇总
    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 的安全功能通过使用领域和一个或多个基于令牌的身份验证服务来验证用户身份。领域用于根据身份验证令牌解析和验证用户。安全功能提供了许多内置领域。

了解安全领域

单点登录 (SSO)

Elastic Stack 支持使用 Elasticsearch 作为后端服务,通过 SAML 单点登录 (SSO) 登录 Kibana。SAML 身份验证允许用户使用外部身份提供程序(例如 Okta 或 Auth0)登录 Kibana。

了解 SSO

第三方安全集成

如果您使用的身份验证系统在 Elastic Stack 的安全功能中没有默认支持,则可以创建自定义领域来验证用户身份。

了解第三方安全性

管理和运营

警报

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 客户端

Tableau Connector for Elasticsearch

Tableau Connector for Elasticsearch 使 Tableau Desktop 和 Tableau Server 用户可以轻松访问 Elasticsearch 中的数据。

下载 Tableau Connector

CLI 工具

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

探索不同的 CLI 工具

管理和运营

REST API

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

文档 API

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

探索可用的文档 API

搜索 API

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

探索可用的搜索 API

聚合 API

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

探索可用的聚合 API
  • 指标聚合

  • 桶聚合

  • 管道聚合

  • 矩阵聚合

  • 累积基数聚合

  • 地理十六进制网格聚合

摄取 API

使用摄取 API 对您的数据管道执行 CRUD 操作,或使用模拟管道 API 对文档集执行特定管道。

探索可用的摄取 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 扩展插件

  • 警报插件

  • 分析插件

  • 发现插件

  • 摄取插件

  • 管理插件

  • 映射器插件

  • 安全插件

  • 快照/恢复存储库插件

  • 存储插件

管理和运营

部署

公共云、私有云或介于两者之间 - 我们使您能够轻松运行和管理 Elasticsearch。

下载和安装

入门从未如此简单。只需将 Elasticsearch 和 Kibana 作为存档或使用包管理器下载并安装即可。您将立即对数据进行索引、分析和可视化。使用默认发行版,您还可以通过 30 天免费试用版测试白金功能,例如机器学习、安全、图形分析等。

下载 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、语言客户端、摄取节点、轻量级传送器或 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。我们创建了一个基础架构来简化流程。libbeat 库完全用 Go 编写,提供了所有 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 种不同的处理器,包括追加、转换、日期、剖析、删除、失败、grok、连接、删除、设置、拆分、排序、修剪等等。

了解摄取处理器

分析器

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

了解数据分析器

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

输入:"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 数据库,但它仍然提供类似的功能。

了解动态映射

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

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

了解文档值

地理空间(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)

基于 HNSW 算法构建在 Lucene 9 的新的近似最近邻或 ANN 支持之上,新的 _knn_search API 端点通过向量相似性促进了更具可扩展性和性能的搜索。它通过在召回率和性能之间进行权衡来实现这一点,也就是说,通过在召回率上做出微小的妥协,在非常大的数据集上实现比现有蛮力向量相似度方法更好的性能。

详细了解向量搜索

查询 DSL

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

了解 Elasticsearch 查询 DSL

异步搜索 API 允许用户在后台运行长时间运行的查询,跟踪查询进度,并在部分结果可用时检索它们。

了解异步搜索

高亮器

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

了解突出显示器

类型提前(自动完成)

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

了解提前输入

建议器(您的意思是)

短语建议器通过在术语建议器的基础上构建额外的逻辑,选择整个更正后的短语而不是基于 ngram 语言模型加权的单个标记,从而为您的搜索添加了“您的意思是”功能。在实践中,该建议器将能够根据共现和频率对选择哪些标记做出更好的决策。

了解建议器

更正(拼写检查)

术语建议器是拼写检查的根源,它根据编辑距离建议术语。在建议术语之前分析提供的建议文本。为每个分析的建议文本标记提供建议的术语。

了解更正

渗透器

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

了解渗透器

查询分析器/优化器

Profile API 提供了关于搜索请求中各个组件执行的详细时间信息。 它可以深入了解搜索请求如何在底层执行,以便您了解某些请求速度缓慢的原因并采取措施改进它们。

了解 Profile API

基于权限的搜索结果

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

可动态更新的同义词

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

了解分析器重新加载 API

结果固定

将选定的文档提升到比匹配给定查询的文档更高的排名。 此功能通常用于引导搜索者找到精选文档,这些文档的排名高于任何“自然”搜索匹配项。 使用存储在 _id 字段中的文档 ID 来标识提升的或“固定”的文档。

了解结果固定

搜索和分析

分析

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

聚合

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

了解聚合
  • 指标聚合

  • 桶聚合

  • 管道聚合

  • 矩阵聚合

  • 地理十六进制网格聚合

  • 随机采样器聚合

图形探索

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

了解 Graph explore API
screenshot-kibana-graph-feature-page.jpg

搜索和分析

机器学习

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

时间序列预测

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

了解预测
screenshot-machine-learning-feature-page.jpg

时间序列异常检测

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

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

  • 统计罕见性

  • 群体成员的不寻常行为

异常警报

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

阅读有关警报的信息

推理

推理使您能够使用监督机器学习过程(如回归或分类)不仅作为批处理分析,而且以连续的方式使用。 推理可以使用训练有素的机器学习模型来处理传入数据。

了解推理

语言识别

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

了解语言识别