云搜索服务 CSS-在Elasticsearch集群创建向量索引:(可选)离线构建

时间:2025-06-06 15:53:08

(可选)离线构建

离线构建API仅适用于业务无实时性要求的场景,要求集群版本大于或等于Elasticsearch 7.10.2,且集群镜像版本号不低于7.10.2_24.3.3_x.x.x。

Elasticsearch使用类LSM-Tree写入模型,数据持续写入和更新的过程中会生成大量小的索引段,并通过后台合并任务不断合并成大的索引段,以提供更优的查询性能。由于向量索引的构建是计算密集型的,向量数据写入过程频繁的合并任务会消耗更多的CPU资源。因此,在数据实时性要求不高的场景,建议设置向量字段的“lazy_indexing”参数为“true”开启索引延迟构建,当全量数据写入完成后,再调用离线构建API完成向量索引的最终构建。使用离线构建功能可以有效减少合并过程中向量索引的重复构建,能够端到端提升写入和索引合并的性能。

离线构建的执行流程包含两个步骤:

  1. 合并索引段。
  2. 基于最终的索引段构建向量索引。

离线构建API的接口格式如下:

POST _vector/indexing/{index_name}
{
  "field": "{field_name}"
}

其中,{index_name}为需要构建索引的索引名称,{field_name}为向量字段名称且该字段必须已经配置了“lazy_indexing”“true”

当开启了lazy_indexing延迟构建索引的向量字段,在写入数据后未调用离线构建API,则索引无法正常执行VectorQuery标准查询,该查询请求将会返回错误码500,错误信息中包含“Load native index failed exception”。此时,建议先执行离线构建再查询。

support.huaweicloud.com/usermanual-css/css_01_0121.html