【问题标题】:Efficient way to rank up search results using inverted index使用倒排索引对搜索结果进行排名的有效方法
【发布时间】:2011-10-10 17:18:48
【问题描述】:

我的倒排索引是这样的:

token_word | docid,位置;docid,位置;docid,位置;

在算法中,为了在他们查询词组的时候进行排名,我打开每个词的桶数据,然后寻找连续的位置匹配,排名会更高,只是一个简单的相关性排名。 问题是,我需要检查算法中的所有结果,以便按“排名分数”排序,即使我每页只显示 10 个。

有人知道解决这个问题的方法吗?也许我需要在索引本身中对 docid 进行排名?

【问题讨论】:

    标签: performance algorithm search-engine


    【解决方案1】:

    除了token_word | docid,position;docid,position;docid,position; 方法,我建议你添加一个token_word | docid,frequency;docid,frequency;docid,frequency; 记录。

    这样,您在响应查询时只需考虑一次文档。这可能会增加预处理,但会减少用户查询时的无用开销。

    您可能在处理多个单词查询(即几乎所有个查询)时遇到问题,因此对于接近或位于领带。

    如果我处于你的位置,我会怎么做:由于你每页显示 10 个结果,我会根据频率索引所有文档,然后根据位置只索引第一页的前 10 个。如果用户移动到第二页,则对第二页执行相同操作。


    这种方法的一个缺陷是,有时页面 n + 1 上的前几个结果可能会比页面 n 上的最后几个结果更好。 p>

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多