es向量搜索插件-knn

1. knn向量检索插件

使用过下面两个插件

https://github.com/opendistro-for-elasticsearch/k-NN


优点: 相对elastiknn,该插件支持把底层生成hnsw一个结构加载进内存,376w数据,768纬度向量,搜索性能在300-400ms左右

缺点: 

1.该插件需要基于nmslib生成一个c的so文件,该文件比较依赖底层操作系统的库,建立项目最好使用docker容器的方式,不然把本地打的so文件,放到其他环境会出现各种bug,比如: [libKNNIndexV1_7_3_6.so_0x6b1da]  _GLOBAL_sub_I_distcomp_sparse_scalar_fast.cc+0x2a

2. 该插件对应于es7.7.1的版本存在各种bug,比如打重复分数、使用cosine距离,但是实际算出来是l2距离,因此建议使用最新的版本,目前最新该插件对应的es版本是7.10.2


2. https://github.com/alexklibisz/elastiknn

优点: 这个是完全对接了es和luence语法的,应该java原生应用,这个不需要安装so库,官网直接就有插件,使用起来比较简单

缺点: 性能相对于上面插件有差距,看官网的QPS在400多左右

你可能感兴趣的:(es向量搜索插件-knn)