Jupyter AI

8 Elasticsearch基础概念之索引与类型

📅 发表日期: 2024年8月15日

分类: 🔍Elasticsearch 入门

👁️阅读: --

在上一篇文章中,我们深入探讨了Elasticsearch中的集群与节点的基本概念。掌握了这些概念之后,我们现在将继续前进,讨论Elasticsearch中的另一项基本组成部分:索引和类型。

索引(Index)

在Elasticsearch中,索引是一个逻辑命名空间,它类似于传统数据库中的“数据库”概念。每个索引都由多个文档组成,这些文档包含了存储的实际数据。索引不仅仅是数据的存储位置,还与数据的搜索和分析方法紧密相关。

创建索引

我们可以使用REST API来创建一个新的索引,例如:

PUT /my_index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}

在这个示例中,我们创建了一个名为my_index的索引,并设置了1个主分片和1个副本。

索引命名规则

Elasticsearch的索引名称必须符合以下规则:

  • 只能包含小写字母、数字、下划线(_)、连字符(-)、和点(.)。
  • 不能以_-开头。
  • 最大长度不能超过255个字符。

查询索引

创建索引后,您可以查询其中的数据。例如,通过以下命令来获取索引的基本信息:

GET /my_index

这将返回与my_index相关的元数据,包括映射和设置等。

类型(Type)

在Elasticsearch的早期版本中,类型用于在同一个索引中存储不同种类的数据。每个类型可以表示一种文档的结构。在Elasticsearch 7.0版本后,已经不推荐使用类型,最终会被移除。因此,在新项目中建议只使用单个类型的索引,但为了理解,我们仍然介绍这个概念。

类型的创建

以下是创建一个包含类型的索引示例:

PUT /my_index/_mapping/my_type
{
  "properties": {
    "name": {
      "type": "text"
    },
    "age": {
      "type": "integer"
    }
  }
}

在这个例子中,我们为my_index索引创建了一个名为my_type的类型,并定义了两个字段:nameage

文档与类型的关系

每个类型都包含多个文档。文档是存储在Elasticsearch的基本单位,类似于传统数据库中的行。在新版本中,建议使用“文档”而无需考虑“类型”。

文档的插入

可以通过以下方式向索引中插入文档:

POST /my_index/_doc/1
{
  "name": "Alice",
  "age": 30
}

这里我们向my_index索引中插入了一个文档,文档的ID为1,包含nameage两个字段。注意,在新版本中,您应该使用_doc作为默认类型。

小结

通过本节的学习,我们了解了 索引类型 的基本构成, 如何创建索引、查询索引以及在索引中插入文档。理解这些基本概念是使用Elasticsearch进行高效数据搜索和分析的基础。

在下一篇文章中,我们将探讨 基础概念之文档结构,进一步深入Elasticsearch的内部工作原理,以及如何有效地设计和存储文档,以增强数据检索的能力。希望你继续关注!

🔍Elasticsearch 入门 (滚动鼠标查看)