索引、文档和字段

编辑

索引是 Elasticsearch 中的基本存储单元,是用于存储具有相似特征的数据的逻辑命名空间。在您 部署 Elasticsearch 后,您将开始创建索引以存储您的数据。

索引是文档的集合,由名称或别名唯一标识。此唯一名称非常重要,因为它用于在搜索查询和其他操作中定位索引。

一个密切相关的概念是数据流。此索引抽象针对仅追加的时间戳数据进行了优化,由隐藏的、自动生成的后台索引组成。如果您正在使用时间戳数据,我们建议您使用 Elastic 可观测性 解决方案以获取其他工具和优化的内容。

文档和字段

编辑

Elasticsearch 以 JSON 文档的形式序列化和存储数据。文档是一组字段,这些字段是包含数据的键值对。每个文档都有一个唯一的 ID,您可以创建它或让 Elasticsearch 自动生成。

一个简单的 Elasticsearch 文档可能如下所示

{
  "_index": "my-first-elasticsearch-index",
  "_id": "DyFpo5EBxE8fzbb95DOa",
  "_version": 1,
  "_seq_no": 0,
  "_primary_term": 1,
  "found": true,
  "_source": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Smith",
    "info": {
      "bio": "Eco-warrior and defender of the weak",
      "age": 25,
      "interests": [
        "dolphins",
        "whales"
      ]
    },
    "join_date": "2024/05/01"
  }
}

元数据字段

编辑

已索引的文档包含数据和元数据。元数据字段是存储有关文档信息的系统字段。在 Elasticsearch 中,元数据字段以下划线为前缀。例如,以下字段是元数据字段

  • _index:存储文档的索引的名称。
  • _id:文档的 ID。ID 必须在每个索引中唯一。

映射和数据类型

编辑

每个索引都有一个映射或模式,用于说明文档中字段的索引方式。映射定义了每个字段的数据类型、字段应如何索引以及应如何存储。将文档添加到 Elasticsearch 时,您可以选择两种映射选项

  • 动态映射:让 Elasticsearch 自动检测数据类型并为您创建映射。动态映射有助于您快速入门,但由于自动字段类型推断,可能会导致特定用例的结果不理想。
  • 显式映射:通过为每个字段指定数据类型来预先定义映射。建议用于生产环境,因为您可以完全控制数据的索引方式以适应您的特定用例。

您可以在同一个索引上使用动态映射和显式映射的组合。当您的数据中存在已知字段和未知字段的混合时,这很有用。