创建索引

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
所有文档
menu
没有找到结果,请重新输入

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
  • 文档中心
  • arrow
  • ElasticsearchBES
  • arrow
  • 向量检索特性
  • arrow
  • 操作指南
  • arrow
  • 创建索引
本页目录
  • 创建索引
  • 参数
  • 向量字段相关参数
  • index_type 参数说明
  • parameters 参数说明

创建索引

更新时间:2025-08-20

用户可以参考本文档,来进行向量索引创建。

创建索引

向量索引在创建的时候,需要指定 settings.index.knn : true,以开启向量相关的功能。同时,可以在创建索引的时候指定分片数量number_of_shards 和副本数量number_of_replicas。

  • 分片数量在索引创建后无法修改,增加分片数量,可以提高索引的整体容量,建议单个分片存储100万-500万向量,存储容量不超过50GB。分片数量不宜过高,因为对索引的查询需要汇总所有分片上的子查询结果,所以分片数量会增加查询消耗。因此,增加分片数量不会提高查询QPS。
  • 副本数量定义了每个分片有多少份数据副本,可以随时修改,取值范围[0, 节点数-1]。提高副本数量,可以扩展查询可用副本,提高整体QPS,不过会增加数据冗余、存储成本、写入和查询时的资源消耗等。目标副本数超过当前节点数时,集群需要扩容。

BES支持hnsw、hnsw_sq8、hnsw_pq、ivf、ivf_qp、ivf_hnsw、ivf_hnsw_pq等多种不同的算法,用户可以根据自己的业务场景进行选择,算法的说明参考:算法介绍。

用户在创建向量索引的时候,可以为每个字段指定需要的索引算法和算法相关的参数,详情请参考以下示例和参数说明:

JSON
1PUT my_index 
2{
3  "settings": {
4    "index": {
5      "knn": true,
6      "number_of_shards": 5, // 索引的分片数量,创建后无法修改,建议单个分片存储100万-500万向量,建议单个分片存储容量不超过50GB
7      "number_of_replicas": 1 // 分片的副本数量,取值范围[0, 节点数-1],可随时修改
8    }
9  },
10  "mappings": {
11    "properties": {
12      "id": {
13        "type": "long"
14      },
15      "file-type": {
16        "type": "keyword"
17      },
18      "field_hnsw": {
19        "type": "bpack_vector",
20        "index_type": "hnsw", // 构建hnsw索引
21        "dims": 768, // 设置实际的向量维度
22        "space_type": "l2",
23        "parameters": { // 指定hnsw参数
24          "m": 32,
25          "ef_construction": 256
26        }
27      },
28      "field_hnsw_default": { // 只配置必填参数,其他参数均为默认值
29        "type": "bpack_vector",
30        "index_type": "hnsw", // 构建hnsw索引
31        "dims": 768
32      },
33      "field_linear": { // 只想用linear算法的字段,可以把build_index参数置为false,代表不会实际构建向量索引结构
34        "type": "bpack_vector",
35        "index_type": "hnsw",
36        "dims": 768,
37        "build_index": false // 默认为true
38      },
39      "field_hnsw_sq8": { 
40        "type": "bpack_vector",
41        "dims": 768,
42        "index_type": "hnsw_sq8", // 构建hnsw_sq8索引
43        "space_type": "l2",
44        "parameters": { // 指定hnsw参数
45            "ef_construction": 256,
46            "m": 32
47        }
48      },
49      "field_hnsw_pq": { 
50        "type": "bpack_vector",
51        "dims": 768,
52        "index_type": "hnsw_pq", // 构建hnsw_pq索引
53        "space_type": "l2",
54        "parameters": { // 指定hnsw_pq参数
55            "ef_construction": 256,
56            "m": 32,
57            "pqm": 128
58        }
59      },
60      "field_ivf": {
61        "type": "bpack_vector",
62        "dims": 768,
63        "index_type": "ivf", // 构建ivf索引
64        "space_type": "l2",
65        "parameters": { // 指定ivf参数
66            "nlist": 100
67        }
68      },
69      "field_ivf_pq": {
70        "type": "bpack_vector",
71        "dims": 768,
72        "index_type": "ivf_pq", // 构建ivf_pq索引
73        "space_type": "l2",
74        "parameters": { // 指定ivf_pq参数
75            "nlist": 100,
76            "pqm": 128
77        }
78      },
79      "field_ivf_hnsw": {
80        "type": "bpack_vector",
81        "dims": 768,
82        "index_type": "ivf_hnsw", // 构建ivf_hnsw索引
83        "space_type": "l2",
84        "parameters": { // 指定ivf_hnsw参数
85            "nlist": 100,
86            "ef_construction": 256,
87            "m": 32
88        }
89      },
90      "field_ivf_hnsw_pq": {
91        "type": "bpack_vector",
92        "dims": 768,
93        "index_type": "ivf_hnsw_pq", // 构建ivf_hnsw_pq索引
94        "space_type": "l2",
95        "parameters": { // 指定ivf_hnsw_pq参数
96            "nlist": 100,
97            "ef_construction": 256,
98            "m": 32,
99            "pqm": 128
100        }
101      }
102    }
103  }
104}

参数

向量字段相关参数

参数 类型 是否必填 默认值 创建后是否可修改 说明
type string 是 bpack_vector 否 字段类型,向量字段类型固定为 bpack_vector
dims int 是 无 否 向量维数,必填项
index_type string 是 hnsw 否 向量检索算法,必填项,取值参考下方详细说明
space_type string 否 cosine 否 向量检索空间距离算法,取值参考下方详细说明
parameters object 否 null 否 向量检索算法的具体参数,取值参考下方详细说明
index_type 参数说明
参数值 支持的距离算法(space_type) 说明
hnsw l2,cosinesimil(cosine),innerproduct(dot_prod) hnsw算法
hnsw_sq8 l2,cosinesimil(cosine),innerproduct(dot_prod) hnsw算法+sq8量化
hnsw_pq l2,cosinesimil(cosine),innerproduct(dot_prod) hnsw算法+pq量化
ivf l2,innerproduct(dot_prod) ivf算法
ivf_pq l2,innerproduct(dot_prod) ivf算法+pq量化
ivf_hnsw l2,innerproduct(dot_prod) ivf算法+聚簇内构建hnsw索引
ivf_hnsw_pq l2,innerproduct(dot_prod) ivf算法+聚簇内构建hnsw索引+pq量化
parameters 参数说明
参数 类型 是否必填 默认值 创建后是否可修改 说明
m int 否 16 否 hnsw算法参数。此参数表示构造期间为每个新元素创建的双向链接数,主要影响内存、存储消耗以及召回率。m值越高,意味着更高消耗的内存和存储,更慢的索引构建时间,以及更好的召回率。建议根据min(向量维度 * 1.5, 32)取值,以保证性能,12-48可以满足大多数场景的需求。
ef_construction int 否 200 否 hnsw算法参数。此参数表示在索引构建过程中,最近邻居的动态扫描区域大小。该值越大,越不容易陷入局部最优解,召回率更高,但是索引构建越慢,取值范围为[2,+∞]。需要注意,如果用户业务需求要求检索top k,那设置的ef_construction值需要大于k。
pqm int 否 1 否 pq量化算法参数,需要可以被向量维数整除。pq算法的字向量量化器数量,也即子向量数量。一般建议设置为向量维数的1/4;m 取值越小内存占用越小,查询速度越快,精度也更低。
nlist int 否 4 否 ivf算法参数。向量划分的桶数,较高的值意味着向量数据会被划分到更多的桶,每个桶内到数据更少,查询单个桶的向量数据的资源消耗和时间都会减少,但是查询时相同数量的桶包含的向量数量变少了,召回率可能会下降。查询时需要设置合理的 nprobes 参数以保证召回率。一般建议 nlist = C * sqrt(N),C为用户自选的常数,可以根据具体情况调整,比如可以从C=4开始尝试,再根据业务所需要的召回率来调整测试。

上一篇
向量索引缓存管理
下一篇
基于Reciprocal Rank Fusion的融合查询