不为失败找理由,要为成功找方法。

ES8.8向量查询性能问题

Elasticsearch | 作者 zmc | 发布于2023年08月29日 | 阅读数:1912

ES向量查询对于内存的依赖非常严重,只要有磁盘IO,性能骤降,有没有大佬有过海量向量数据的调优实践;
 
384维的向量数据,3亿左右大概1T(包括副本),已经设置不存储source。
 
痛点:全部数据都缓存到内存,成本非常高,直接使用磁盘IO(SSD)性能骤降,无法满足需求;
(使用内存缓存:300ms左右,使用磁盘IO:15s+,甚至30s+)
 
是否有大佬有过这方面的调优;
已邀请:

Charele - Cisco4321

赞同来自:

你说的ES向量查询,是指dense_vector还是knn?
 
快慢,跟数据量和查询的复杂度有关吧,贴出大概地DSL形式
 
另外,“全部数据都缓存到内存”,你是通过何种方式做的?

hapjin

赞同来自:

ES+faiss/nmslib,faiss通过插件形式整合到ES。若有标量过滤,先通过 pre_filter 过滤,再进行向量相似度查询,看看能否把亿级数据向量查询控制在几十ms内完成。

要回复问题请先登录注册