搜索引擎排序算法如何设计?

2013-06-05 15:06:15 +08:00
 kenneth
搜索引擎按照关键词,能够找到匹配的n个结果,如何给这N个结果一个好的排序规则?
一般设计中要考虑的问题,或者算法有那些?
求思路
3906 次点击
所在节点    程序员
9 条回复
xunyu
2013-06-05 15:21:12 +08:00
pagerank?
taogogo
2013-06-05 17:54:03 +08:00
找影响规则呗,关键词在每个页面的权重;此关键词的此页面的点击次数;当前页面的权威性
crazybubble
2013-06-06 09:44:29 +08:00
基本上有2种理论来给搜索结果排位。一种是Vector Space Model, 简单来说就是把搜索的关键词(query)当成一个vector,你搜索到的每一个doc也当成一个vector,然后计算query和每一个doc之间的similarity,最相似的排在最前面。另一种是statistic language model,简单来说,对于搜索到的每个doc,计算出这个doc里所包含的词,能组成query的可能性,这个可能性越高的话,就代表这个doc越可能和query是相关的,所以排在前面。
ant_sz
2013-06-06 12:09:28 +08:00
搜索引擎的排序算法可不少,还不算上通过记录用户点击来进行反馈训练的各种机器学习的方法

pagerank只能算是入门级的了,目前在google搜索排序当中的权重已经不大,况且google已经冻结了pagerank值的改变。

如果想要有一个入门级的概览,《集体智慧编程》这本书的搜索一章提供了pagerank的实现+神经网络反馈评价的代码。也有一些对搜索技术进行概述的书籍可以参考。
clippit
2013-06-06 12:16:55 +08:00
Lucene的排名是这样算的: http://lucene.apache.org/core/4_3_0/core/org/apache/lucene/search/similarities/TFIDFSimilarity.html

Lucene结合了布尔模型和空间向量模型来计算相关性分数。权重方面还用到了TF-IDF的方法。
martinbruce
2013-06-06 17:44:00 +08:00
参考google两位创始人的专利算法:

The Anatomy of a Large-Scale Hypertextual Web Search Engine

http://infolab.stanford.edu/~backrub/google.html
alafeizai
2013-06-06 22:50:36 +08:00
网页相关性哈,分为文本相关性和非文本相关性,涉及到文本处理,query理解和重写,命中位置,时新性什么的,还有click model的影响,细节很多。
darasion
2013-06-06 23:17:48 +08:00
撸主醒醒。

搜索引擎要都是只考一两个算法就做出来的话,那就不用那么多人费那么大劲还花那么多钱去建造了。
Sunya
2013-06-06 23:54:26 +08:00
那 SEO 和黑帽都得失业了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/71323

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX