合并搜索结果算法

时间:2011-11-08 16:50:39

标签: algorithm search ranking google-search google-search-api

我正在实现一个搜索栏,应该搜索2个主要字符串A和B. 我优先考虑以下结果(从最重要到最不重要)

  1. 结合A和B的结果
  2. 仅限B的结果
  3. 仅限A的结果
  4. 所以例如,如果我搜索“埃及”+“金字塔” 我希望我的第一个结果是“埃及金字塔”之类的东西,其次是关于“金字塔”的一般或几何形状等等,然后最终结果为“埃及”

    我正在尝试多种搜索API,例如谷歌和必应,我目前所做的是先搜索结果集X,然后搜索B只获取我称之为肯定列表,然后仅搜索A得到一个否定列表..我在X中得分,如果它们存在于否定列表中则惩罚它们,如果它们存在于肯定列表中则给予奖励,然后在最后我将积极列表中剩下的任何内容加起来X ..

    它运作良好,但仍然不够好,我想知道是否有人可以帮助我添加这个简单的算法或完全不同的想法

1 个答案:

答案 0 :(得分:0)

你需要为这样的任务使用一个叫做“set”的东西。 http://en.wikipedia.org/wiki/Set_%28computer_science%29

如果您搜索“埃及”+“金字塔”,请为每个搜索字词创建“设置”。最重要的结果是我们称之为集合的“交集”,(在“埃及” - 集和“金字塔”集合中)。

优先级较低的结果是我们称之为集合的“相对补充”。假装你想要B中不在A中的所有东西。我们称之为B)中A的相对补充。

大多数编程语言都有一个为您实现集合的库/包(已经过优化)。