V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuikns
V2EX  ›  Google

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

  •  
  •   yuikns · 2019-01-15 04:29:43 +08:00 · 3191 次点击
    这是一个创建于 2167 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    看图如下:

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

    给定 query: 徽州丝绢案纷争

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

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

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

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


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

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

    我也不知道是不是巧合,或者什么原因。只是正文中提到的一些迹象让我感觉有特殊的处理。然后不由考虑如何才能在保证性能的同时可以抓住这个 feature 然后加上。
    ybilly
        6
    ybilly  
       2019-01-15 18:42:48 +08:00
    这个排序应该是巧合,搜小说的时候,他就不会给你排章节。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:49 · PVG 15:49 · LAX 23:49 · JFK 02:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.