这种搜索排序可以如何实现?

2019-01-15 04:29:43 +08:00
 yuikns

我们做搜索,最简单的是通过关联度排序。算个 b25m, 加一下时间权重什么的,然后标记出来。但是有些搜索结果可以特别优化一下。

其中有个特别的例子,就是有多个同来源的连载内容

看图如下:

https://s2.ax1x.com/2019/01/15/FziGGD.png

给定 query: 徽州丝绢案纷争

可以搜索到简书中有 4 个非常相关的结果:

明.徽州丝绢案纷争{1,2,3,4}(马伯庸) - 简书

Google 似乎特意把它们按照字典序排序了一下。

通常情况下索引和全文文本也有关,因此即便标题近似,bm25 也不一样的,而且他们四篇的时间序也是是数字大的更加新,那么搜索中应该 4,3,2,1 才更像没有特殊处理过的。所以想请问一下,如果我们实现,有没有什么方法会在遇到特殊情况下达成这样的效果,而又不怎么影响普通的搜索结果和效率呢?


又,不同 query 反复尝试了很多次,有时候会少上一篇,顺序就比较随机,有时候那四篇顺序出现在 2345 条。

3014 次点击
所在节点    Google
6 条回复
Xs0ul
2019-01-15 04:52:52 +08:00
一个猜想,可能是按点击量调整出来的,一般越靠前的看得人越多,有的人看一半弃坑了
takato
2019-01-15 05:52:47 +08:00
或者仅仅可能是随机给排序结果,只有当有序时的情况被人特别注意了。
jetyang
2019-01-15 09:26:34 +08:00
一个思路:对结果做聚合(比如一次性取出前 1000 个结果,按 term 向量做聚类),在小组结果中做 rerank,也就是按集数排序。
AlisaDestiny
2019-01-15 09:53:25 +08:00
就像楼上说的,可能是对搜索结果中按照相似度分组,然后对相似度较高的组内部做字典排序。
还有,我顺便看了下“明.徽州丝绢案纷争”,故事真是精彩,感谢推荐。
yuikns
2019-01-15 10:04:55 +08:00
感谢各位。

我也不知道是不是巧合,或者什么原因。只是正文中提到的一些迹象让我感觉有特殊的处理。然后不由考虑如何才能在保证性能的同时可以抓住这个 feature 然后加上。
ybilly
2019-01-15 18:42:48 +08:00
这个排序应该是巧合,搜小说的时候,他就不会给你排章节。

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

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

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

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

© 2021 V2EX