加载中

Elasticsearch 中的稠密向量搜索

稠密向量使用神经嵌入来表示语义。它们将文本、图像或其他数据转换为固定长度的浮点数向量。具有相似含义的内容被映射到向量空间中的相近点,这使得稠密向量搜索成为以下用途的强大技术:

  • 查找语义相似的内容
  • 将自然语言问题与相关答案进行匹配
  • 执行图像和多媒体相似性搜索
  • 提供基于内容的推荐
提示

对于大多数用例,semantic_text 字段类型是推荐的起点。它为向量搜索提供了自动模型管理和合理的默认值。

要在 Elasticsearch 中实现稠密向量搜索,您需要索引配置以及生成嵌入的方法

  1. 索引带有嵌入的文档

  2. 使用 k-NN 搜索查询索引

    • 使用 knn 查询根据向量相似性检索结果

当您使用 API 创建 Elasticsearch Serverless 项目时,可以在两个配置方案(profile)之间进行选择:general_purposevector. 建议大多数搜索用例使用通用配置方案,包括全文搜索、稀疏向量以及使用诸如 BBQ 等压缩技术的稠密向量。仅当您的用例基于具有高维度的未压缩稠密向量时,才建议使用向量配置方案。

有关该配置方案如何影响虚拟计算单元 (VCU) 分配和费用的更多信息,请参考 Elasticsearch Serverless 计费维度

更好二值量化(Better Binary Quantization, BBQ)是一种针对 dense_vector 字段的高级向量量化技术。它将嵌入压缩为紧凑的二进制形式,从而能够实现更快的相似性搜索并减少内存使用。这既提高了搜索相关性,又提升了成本效率,特别是在与 HNSW(分层可导航小世界,Hierarchical Navigable Small World)结合使用时。

具有 floatbfloat16 向量且维度达到或超过 384 的新索引将自动默认使用 BBQ HNSW,以获得最佳性能和内存效率。其他元素类型(例如 bytebit)默认使用不带量化的普通 hnsw

更好二值量化 (BBQ) 文档中了解有关 BBQ 工作原理、支持的算法以及配置示例的更多信息。

提示

当使用 semantic_text 字段类型时,您可以通过 index_options 参数配置 BBQ 及其他量化选项。有关在语义文本字段中使用 bbq_hnswint8_hnsw 和其他量化策略的示例,请参考 使用 index_options 优化向量存储

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.