Faiss提高搜索查询速度

将数据集分成Voronoi cells, 每一个向量都落在其中一个cell中, 搜索时,只需要查询搜索向量所在的cell及附近一些相邻的cell即可

这就是IndexIVFFLat 索引的原理 这种索引需要一个training的过程

IndexIVFFlat也需要另一个索引,量化器,负责将向量分配到特定的cell中。每个cell被中心唯一确定。要确定一个向量属于哪个段,就是看这个向量距离哪个cell中心最近。这就是另一个index的任务,IndexFlatL2

search方法有两个参数:

nlist 段的数量

nprobe 搜索时要访问的段的数量

search花费的时间大致随nprobe的增长而线性增长 但是由于量化也需要时间 所以这种线性关系额外还会加上某个常量

对47357个spu,每个spu的hashcode为长度2048的向量 执行搜索 单个query耗时1.2~4.7ms,trainning耗时2.47s

默认probe为1理论上搜索最快 但是结果可能不准

调整nprobe参数就是在速度和准确性上做权衡,如果使nprobe=nlist则就等同于强力L2搜索

java call faiss_Faiss提高搜索查询速度相关推荐

  1. 6条策略提高mysql查询速度 潇湘博客

    6条策略提高mysql查询速度 1,表设计一定要优化,冗余数据最少,少用连接查询.如果在实际应用中,使用了极其复杂的连接,子查询,则数据表的设计得要重新考虑了. 2,尽量用char而不是varchar ...

  2. 处理上百万条的数据库如何提高处理查询速度

    处理上百万条的数据库如何提高处理查询速度 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 ...

  3. 提高数据库查询速度的几个思路

    提高数据库查询速度的几个思路 : 1.缓存,在持久层或持久层之上做缓存; 2.数据库表的大字段剥离,保证单条记录的数据量很小;  3.恰当地使用索引; 4.必要时建立多级索引;  5.分析Oracle ...

  4. 提高搜索查询时的点击率/提高搜索流量的质量和数量

    Google webmaster tools 中可以查看查看"热门搜索查询"中网站内容被展示的次数以及被点击的次数(搜索点击率),点开一个热门查询词可以看到网站对应的页面链接以及在 ...

  5. 提高数据库查询速度的方法

    声明:文章是转载的,本文作为个人的备份使用. 处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2 ...

  6. mysql如何提高其查询速度的方法

    2019独角兽企业重金招聘Python工程师标准>>> 最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法. 由于在参与的实际项目中发现当my ...

  7. 提高mysql查询速度_如何提高数据库查询速度

    1.用程序中, 保证在实现功能的基础上,尽量减少对数据库的访问次数: 通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担: 能够分开的操作尽量分开处理,提高每次的响应速度: 在数据窗 ...

  8. mysql年月分表_MySQL之按月拆分主表并按月分表写入数据提高数据查询速度

    使用场景: 主表数据量特别大,为了提高查询的速度,可以考虑按月进行分表,要求就是当月的数据到当月表查询,上月的数据到上月表查询,当天的数据到主表来查询.这样在一定程度上也是提高了数据的查询速度 过程演 ...

  9. mysql 中间表的好处_Mysql中使用中间表提高统计查询速度

    对于数据量较大的表,在其上进行统计查询通常会效率很低,并且还要考虑统计查询是否会对在线的应用产生负面影响.通常在这种情况下,使用中间表可以提高统计查询的效率, 下面通过对session 表的统计来介绍 ...

  10. PHP处理上百万条的数据库如何提高处理查询速度

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

最新文章

  1. 基于(Python下的OpenCV)图像处理的喷墨墨滴形状规范检测
  2. 【转】基于WebSocketSharp 的IM 简单实现
  3. SQL存储过程调试方法
  4. 龙族幻想服务器维护中怎么办,龙族幻想遇到无法连接服务器?两招教你轻松解决...
  5. js动态改变iframe的高度
  6. The 9 Deep Learning Papers You Need To Know About (Understanding CNNs Part 3)
  7. 【POJ2752】Seek the Name, Seek the Fame(hash)
  8. mysql基础01 创建表 修改表
  9. FineBI 项目资源迁移
  10. 计算机技术在生物学中的应用题库,2018年第二军医大学基础医学部816计算机在生物医学中的应用之生物化学考研基础五套测试题...
  11. 深圳多九云优认知能力团体反馈训练系统----认知训练与生物反馈训练合二为一
  12. DATEDIF函数使用方法高级篇到期提醒等
  13. 小程序 - 微信授权登录 微信授权绑定手机号
  14. Mysql的AUTO_INCREMENT
  15. 手机版python3.6.6的requests库下载_Python3.6安装及引入Requests库
  16. 影像传感器尺寸换算(英寸-毫米)
  17. screenfull全屏显示
  18. 用 Python 打扑克牌——炸金花
  19. CSDN在线公开课日历【十月】
  20. TheBrain.Technologies.PersonalBrain.v5.0.2.6.Incl.Keygen-b0b1

热门文章

  1. 设计模式之观察者模式(Observer)与Java委托
  2. 深度学习框架keras使用—(3)MNIST数据集介绍
  3. vant 索引城市不对_vant IndexBar实现的城市列表
  4. 美国投资移民EB-5或将关闭,投资者寻求投资入籍备选方案
  5. HTML5中加亮文本的标签,HTML5 新增文本标签
  6. CSDN个人中心_我的收藏_我的博客
  7. 从性能领先到体验领先,迅雷链带动区块链行业升级
  8. 【虹科分享】关于脉冲发生器,你知道多少?
  9. toefl备考2.19
  10. 彻底搞懂克鲁斯卡尔(Kruskal)算法(附C++代码实现)