随笔分类 -  技术讨论

技术讨论
wand(weak and)算法基本思路
摘要:一般搜索的query比较短,但如果query比较长,如是一段文本,需要搜索相似的文本,这时候一般就需要wand算法,该算法在广告系统中有比较成熟的应该,主要是adsense场景,需要搜索一个页面内容的相似广告。 Wand方法简单来说,一般我们在计算文本相关性的时候,会通过倒排索引的方式进行查询,通过倒排索引已经要比全量遍历节约大量时间,但是有时候仍然很慢。 原因是很多时候我们其实只是想要top n个结果,一些结果明显较差的也进行了复杂的相关性计算,而weak-and算法通过计算每个词的贡献上限来估计文档的相关性上限,从而建立一个阈值对倒排中的结果进行减枝,从而得到提速的效果。 wan... 阅读全文

posted @ 2013-08-29 18:06 排行榜技术 阅读(13076) 评论(3) 推荐(2)

xapian倒排索引的归并流程
摘要:Xapian的检索流程和大部分搜索系统都一样,就先从倒排表抽取候选文档,然后结合其他信息进行排序,取top文档作为搜索结果,具体流程如下: 图1 xapian搜索流程 具体流程在terms中找到documents查询这些文档对应的values,进行排序,如果候选document比较多,这个过程就会很慢。给出top结果,一般会读取data数据。 和别的搜索系统一样,提高搜索速度,主要靠优化第一步,较少允许量,或者缩减到下一步的候选文档数目。 xapian倒排索引的归并中,对and的归并采用的是一般的一次一文档的方法DAAT(Document and a time)的方法,但对于... 阅读全文

posted @ 2013-08-28 18:27 排行榜技术 阅读(1541) 评论(0) 推荐(0)

xapian搜索系统存储结构解读
摘要:Xapian的database是所有用于检索的信息表的集合,以下的表是必需的: posting list table 保存了被每一个term索引的document,实际上保存的应该是document在database中的Id,此Id是唯一的。这个就是倒排表。record table 保存了每一个document所关联的data,data不能通过query检索,只能通过document来获取。这个相当于快照。term list table 保存了索引每个document的所有的term。这个相当于正排表。position list table 保存了每一个Term出现在每一个document.. 阅读全文

posted @ 2013-08-28 13:49 排行榜技术 阅读(926) 评论(0) 推荐(0)

导航