了解 Index 并 Mapping 在 Elasticsearch

当然! Index 以下是和 Mapping 中 的解释和示例的翻译 Elasticsearch:

Index 在 Elasticsearch

In 类似于传统数据库管理系统(DBMS) 中的数据库 Index。 Elasticsearch 它存储相关文档的集合。 每个 Index 通常对应于应用程序中的特定类型的数据。 例如,在电子商务应用程序中,您可以创建一个 Index 存储有关产品的信息,另一个 Index 存储有关用户和订单的信息。

每个 Index in Elasticsearch 被分成更小的分片以进行数据分发。 分片是 的一小部分 Index,每个分片可以存储在 Elasticsearch 集群内的单独节点上。 将数据拆分为分片可以优化搜索和查询性能并增强系统的可扩展性。

例如,要创建一个 Index 名为 products  in的新 Elasticsearch 文件,您可以使用 API 或 Kibana 等管理工具执行以下命令:

PUT /products  
{  
  "settings": {  
    "number_of_shards": 3,  
    "number_of_replicas": 2  
  }  
}  

在上面的示例中,我们创建了 Index products 3 个 shard 和 2 个 replica 各一个 shard,以确保可用性和数据备份。

 

Mapping 在 Elasticsearch

Mapping 是定义如何 Elasticsearch 在 Index. 当您将新文档添加到 时 Index, Elasticsearch 用于 Mapping 确定文档中每个字段的数据类型。 这有助于 Elasticsearch 理解如何处理和搜索不同领域的数据。

例如,如果我们有一个 Index products 和 想要将 Mapping ( name 产品名称)和 price  (产品价格)字段分别定义为文本和浮点类型,我们可以执行以下命令:

PUT /products/_mapping  
{  
  "properties": {  
    "name": {  
      "type": "text"  
    },  
    "price": {  
      "type": "float"  
    }  
  }  
}  

在上面的示例中,我们定义了 Mapping Index products  ,字段 name  的数据类型为 text,价格字段的数据类型为 float。 这确保了当 Elasticsearch 接收到索引的新文档时 products  ,它将 name  根据定义的数据类型存储和处理 和 “价格”字段。

Index 并 Mapping 在组织和管理数据方面发挥着至关重要的作用 Elasticsearch。 它们有助于 Elasticsearch 高效地理解和处理数据,优化搜索和查询操作,并为系统提供灵活的可扩展能力。