首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

全方位解读 | Facebook的搜索怎么做的?

社交网络中的搜索除了要考虑传统web搜索中的query文本,搜索人所处的上下文也是需要重点考虑的,其中Facebook搜索场景中特有的社交图谱便是典型的一种上下文。...尽管向量检索(Embedding_based Retrieval, EBR)已经广泛应用于web搜索,但是Facebook的搜索还是沿用之前的布尔匹配。...这篇论文也是从升级Facebook搜索系统开始,总结Facebook将Embedding技术应用到其搜索场景过程中的踩坑经验。...Facebook的统一Embedding模型相比只基于文本特征的模型,在事件搜索上的召回率可以提升18%,分组搜索的召回率提升16%。...查询与索引选择,为了提升查询效率和结果质量,避免过度触发、海量空间占用、无用内容堆积等问题,作者在响应过程中使用了一些规则过滤掉EBR会表现差的查询,比如用户搜索之前搜索过或点击过的东西,或者搜索意图完全不同于

1.5K51

十亿级流量的搜索前端,是怎么做架构升级的?

言归正传,打开百度 App 你会发现,百度前端直接分为首页和搜索结果页,搜索结果页是搜索的主要入口,每天承载着十亿级流量。...没有 Vue、没有 React,还在用 Smarty 模板; 无法支持 Node.js。Smarty 模板强依赖 PHP 环境; 工具链落后。没有 TypeScript、没有 Jest。...图 3 这里有两块日志,意味着同一套代码要在两个部分维护;除了重复之外,它们的差异会对后续的维护引入更高的成本; 底层这个 HHVM+PHP 和社区更加拥抱 Node.js 会有冲突。...图 4 图 4 中可以看到: 把日志、搜索框、相关搜索、性能打点等独立成单独的模块,有专门的同学来独立维护和迭代; 在前后端之间加了一层渲染层;让业务代码和后端的逻辑分开; 在底层加了 Node.js...跨平台 我们有非常多的业务代码,有上千个模板、几十万行代码,这些代码需要迁移到组件化方案上来,而且要确保后端从 PHP 迁移到 Node.js 的整个过程中,业务代码不需要重新开发。

60420
您找到你想要的搜索结果了吗?
是的
没有找到

js版本的(广、深)度优先搜索

前言 广度优先搜索(BFS)和深度优先搜索(DFS),大家可能在oj上见过,各种求路径、最短路径、最优方法、组合等等。于是,我们不妨动手试一下js版本怎么玩。...顾名思义,广度搜索,就是对于一个树形结构,我们一层层节点去寻找目标节点。...树也遍历了一次 1.1 矩阵形式的图的遍历 假设有几个点,我们需要设计一个算法,判定两个点有没有相通 假设点12345是这样的结构: 问:1能不能到达5 显然我们一眼看上去是不会到达的,如果是设计算法的话,怎么做呢...s = "a"; m = s; 求最小的操作步骤数,可以将s拼接到长度等于n 输入一个整数n,表明我们需要得到s字符长度,0<n<10000 案例: in: 6 out: 3 思路:利用广度优先搜索...说明这层的节点已经全部检索完,而且子节点也保存好了 quene = [...temp]//队列是子节点所有的元素集合,重复前面操作 temp = [] } return count } 3.DFS DFS着重于这个搜索的过程

1.1K20

使用fuse.js模糊搜索 常用配置

fuse.js是一个轻量的模糊搜索库 安装 npm install --save fuse.js 使用 import Fuse from 'fuse.js' const list = [...] //...带搜索的数据 const options = {keys:['name']} // 搜索配置,可以配置多个查找字段 const fuse = new Fuse(list, options); return...fuse.search('psr') // 根据模式返回搜索结果,形式如[{item:{匹配的对象},refIndex:0},...]...大小写敏感 false includeScore 结果包含匹配度 false 结果值:0表示完全匹配,1表示完全不匹配 includeMatches 结果包含匹配字符的索引值 false 可用于高亮显示搜索字符的场景...minMatchCharLength 最小匹配长度 1 可用于需要至少几个字符才执行搜索的场景 shouldSort 结果集排序 true 结果集按照匹配度排序 findAllMatches 查找所有项目

1.9K30

js算法初窥03(搜索及去重算法)

前面我们了解了一些常用的排序算法,那么这篇文章我们来看看搜索算法的一些简单实现,我们先来介绍一个我们在实际工作中一定用到过的搜索算法——顺序搜索。...1、顺序搜索 其实顺序搜索十分简单,我们还是以第一篇文章写好的架子作为基础,在其中加入顺序搜索的方法: //顺序搜索 this.sequentialSearch = function(item) {...那么下面我们来看看二分搜索。 2、二分搜索   我们先来做一个简单的游戏。想象一个场景,我们在聚会,大约有7、8个人,这个时候有人提议我们来做个游戏吧。...这就是二分搜索。   与顺序搜索不同的是,二分搜索需要在搜索之前对要搜索的数组排序。...1、【 js 算法 】这么全的数组去重,你怕不怕?     2、也谈JavaScript数组去重     3、js数组去重 当然,有关数组去重的文章远不止这些,只是个人觉得这些内容还不错。

1.5K20

js算法初窥03(搜索及去重算法)

前面我们了解了一些常用的排序算法,那么这篇文章我们来看看搜索算法的一些简单实现,我们先来介绍一个我们在实际工作中一定用到过的搜索算法——顺序搜索。...1、顺序搜索 其实顺序搜索十分简单,我们还是以第一篇文章写好的架子作为基础,在其中加入顺序搜索的方法: //顺序搜索 this.sequentialSearch = function(item) {...那么下面我们来看看二分搜索。 2、二分搜索   我们先来做一个简单的游戏。想象一个场景,我们在聚会,大约有7、8个人,这个时候有人提议我们来做个游戏吧。...这就是二分搜索。   与顺序搜索不同的是,二分搜索需要在搜索之前对要搜索的数组排序。...1、【 js 算法 】这么全的数组去重,你怕不怕?     2、也谈JavaScript数组去重     3、js数组去重 当然,有关数组去重的文章远不止这些,只是个人觉得这些内容还不错。

46320

一日一技:带过期时间的缓存、全文搜索、频率限制怎么做

也讲过倒排索引:使用倒排索引极速提高字符串搜索效率。但这些代码对初学者来说比较难,写起来可能会出错。 实际上,这些功能其实都可以使用Redis来实现,而且每个功能只需要1分钟就能做出来。...全文搜索功能在搜索英文的时候,甚至可以智能识别拼写错误的问题。...print('函数返回的数据是:', test()) time.sleep(50) # 让时间超过缓存的时间 print('函数返回的数据是:', test()) 运行效果如下图所示: 全文搜索...我们再来看看全文搜索功能,实现起来也很简单: from walrus import Database db = Database() search = db.Index('xxx') # 这个名字随便取...如果你想让他兼容拼写错误,那么可以把search = db.Index('xxx')改成search = db.Index('xxx’, metaphone=True),运行效果如下图所示: 不过遗憾的是,这个全文搜索功能只支持英文

39740
领券