elasticsearch索引的创建过程index create逻辑分析

yizhihongxing

下面是关于elasticsearch索引的创建过程的完整攻略:

1. 创建 index

Elasticsearch 索引的创建过程主要分为三个步骤:创建 index、配置 index、预热 index。其中,第一个步骤是最基础也最重要的步骤,我们可以通过以下REST API 请求来创建索引:

PUT /my-index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "body": {
        "type": "text"
      }
    }
  }
}

上述请求中,我们创建了一个名为 my-index 的索引,设置了 1 个分片和 0 个副本。在 mappings 中定义了两个字段 titlebody,它们的类型都是 text。另外,我们也可以不设置 mappings,这时 Elasticsearch 会自动根据文档中的属性进行推导。

2. 配置 index

索引创建完成后,我们需要根据实际需求进行一些配置。这里介绍两个常用的配置项:

2.1 分片和副本

在步骤一中,我们已经设置了索引的分片和副本数量。这里再详细讲解一下:

分片是 Elasticsearch 对数据的水平切分,可以将数据分散到多台机器上进行存储和检索。当一个索引太大,无法存储在单个节点上时,我们需要将它分散到多个节点上。分片的数量不能太小,也不能太大,最好根据数据量和硬件条件进行调整。

副本是 Elasticsearch 对数据的备份,它可以提供高可用和负载均衡。当某个节点宕机或网络不通时,其他节点可以接管并继续提供服务;当查询请求过多时,副本可以分摊负载。副本数量也不能太少,也不能太多,最好考虑性能和容错性的平衡。

可以通过以下 API 修改分片和副本数:

PUT /my-index/_settings
{
  "number_of_replicas": 1
}

上述请求将 my-index 的副本数改为 1。

2.2 索引别名

索引别名是 Elasticsearch 对索引的引用,它可以隐藏底层的真实索引名称,并提供如下功能:

  • 可以在不改变索引名称的情况下修改索引配置;
  • 可以通过别名来进行搜索;
  • 可以将多个索引合并成一个虚拟索引。

可以通过以下 API 创建索引别名:

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "my-index",
        "alias": "my-alias"
      }
    }
  ]
}

上述请求将 my-index 的别名改为 my-alias

3. 预热 index

索引创建完成后,我们需要等待 Elasticsearch 将数据加载到内存中,进行一定的预热操作。这个过程可能会花费一些时间,具体时间也取决于数据量和硬件环境。可以通过以下 API 查看索引状态:

GET /my-index/_stats

上述请求返回的响应中,有一个字段叫 primaries,它包含了主分片的一些统计信息,如存储空间、文档数、分词器等等。

示例说明

为了更好的理解上述过程,下面举两个具体的示例说明:

  1. 创建一个名为 goods 的索引,包含 2 个分片和 1 个副本,定义了一个属性 title 和一个属性 tags
PUT /goods
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "tags": {
        "type": "keyword"
      }
    }
  }
}
  1. 修改名为 students 的索引的副本数为 2。
PUT /students/_settings
{
  "number_of_replicas": 2
}

以上就是关于 Elasticsearch 索引创建过程的详细说明,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:elasticsearch索引的创建过程index create逻辑分析 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • 在Pandas groupby中用字典组合多个列

    在Pandas的groupby函数中,我们可以使用字典组合多个列进行分组。具体步骤如下: 首先,我们需要定义一个字典,字典的键为需要分组的列名,字典的值为对应的列名列表。例如,如果我们需要以“性别”和“年龄”两列为依据进行分组,我们可以定义这样一个字典: group_cols = {‘gender’: [‘Male’, ‘Female’], ‘age’: […

    python-answer 2023年3月27日
    00
  • Pandas GroupBy

    Pandas GroupBy是Pandas数据分析库中一个十分常用的功能,它常常和其他一些数据处理函数(比如agg、apply等)一同使用,在数据处理中起到了至关重要的作用。 什么是Pandas GroupBy Pandas GroupBy是一种基于某个键对数据集进行切片、划分和分解的方法。数据集根据一个或多个键(可以是函数、数组、DataFrame列名等)…

    python-answer 2023年3月27日
    00
  • Pandas通过行或列的总和来过滤一个数据框架

    Pandas是一个强大的Python数据分析库,可以通过行或列的总和来过滤一个数据框架。下面是通过行或列的总和来过滤一个数据框架的详细攻略: 1. 导入pandas模块并创建数据框架 首先需要导入pandas模块,然后创建一个数据框架以便我们可以使用。 import pandas as pd #创建数据框架 data = {‘A’: [1, 2, 3, 4]…

    python-answer 2023年3月27日
    00
  • Python Pandas学习之数据离散化与合并详解

    Python Pandas学习之数据离散化与合并详解 什么是数据离散化 数据离散化是指将连续型数据按照一定的方法划分为离散型数据的过程。例如,我们可以将一组年龄数据按照一定的划分标准,划分为儿童、青少年、成年人和老年人等几个离散的类别。 数据离散化的原因 数据离散化常常是为了更好的进行数据分析和建模,例如: 减小噪声的影响 降低数据复杂度,简化模型 方便进行…

    python 2023年5月14日
    00
  • 将pymysql获取到的数据类型是tuple转化为pandas方式

    将pymysql获取到的数据类型是tuple转化为pandas方式需要经过以下步骤: 步骤一:导入相关的python模块 使用Pandas库需要首先导入相关的python模块,其中必须导入pandas和pymysql模块。在python文件开头,可以这样编写导入语句: import pandas as pd import pymysql 步骤二:连接MySQ…

    python 2023年6月13日
    00
  • python 如何设置柱状图参数

    下面是关于 Python 中设置柱状图参数的完整攻略: 1. 导入需要的库 在使用任何 Python 库前,我们都需要先导入它们。对于绘制柱状图,我们需要导入 matplotlib 库。 import matplotlib.pyplot as plt 2. 准备数据 在绘制柱状图前,我们需要准备好要绘制的数据。以一个地区的温度为例: region = [‘B…

    python 2023年6月14日
    00
  • 如何在Pandas数据框架中设置单元格值

    在Pandas数据框架中设置单元格值可以使用.loc[]方法。针对不同的需求,设置单元格值也有多种不同的方法。 设置单个单元格的值 import pandas as pd # 创建一个数据框架 data = {‘name’: [‘Alice’, ‘Bob’, ‘Charlie’, ‘David’], ‘age’: [25, 32, 18, 47], ‘cit…

    python-answer 2023年3月27日
    00
  • 如何使用Concat联合Pandas数据框架

    使用Concat函数可以将多个Pandas数据框架联合起来。具体地,Concat函数可以按照行方向或列方向联合数据框架,并将它们组合成一个新的数据框架。以下是Concat函数的基本语法: pd.concat([df1, df2], axis=0/1) 其中,df1和df2是待联合的两个数据框架,axis参数指定联合方向,可以为0或1。axis为0时,按行方向…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部