索引、文档和字段

编辑

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

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

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

文档和字段

编辑

Elasticsearch 以 JSON 文档的形式序列化和存储数据。文档是一组字段,即包含数据的键值对。每个文档都有一个唯一的 ID,您可以创建该 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 自动检测数据类型并为您创建映射。动态映射可以帮助您快速入门,但由于自动字段类型推断,可能对您的特定用例产生次优结果。
  • 显式映射:预先定义映射,为每个字段指定数据类型。建议用于生产用例,因为您可以完全控制如何索引数据以满足您的特定用例。

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