0

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

  1. 结合 A 和 B 的结果
  2. 仅针对 B 的结果
  3. 仅 A 的结果

因此,例如,如果我搜索“埃及”+“金字塔”,我希望我的第一个结果是“埃及金字塔”之类的东西,然后是一般的“金字塔”或几何形状等。然后最后“埃及”的搜索结果

我正在尝试几个搜索 API,例如 Google 和 Bing,我目前所做的是我首先搜索两者以获取结果集 X,然后搜索 B 仅获取我所谓的肯定列表,然后搜索 A 仅获取负面列表..我在X中对结果进行评分,如果它们存在于负面列表中,则对其进行惩罚,如果它们存在于正面列表中,则给予他们奖励,然后最后我将正面列表中剩余的所有内容加到X..

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

4

1 回答 1

0

对于这样的任务,您需要使用称为“集合”的东西。http://en.wikipedia.org/wiki/Set_%28computer_science%29

如果您搜索“埃及”+“金字塔”,请为每个单独的搜索词创建一个“集合”。最重要的结果是我们所说的集合的“交集”(在“埃及”集合和“金字塔”集合中)。

较低优先级的结果是我们所说的集合的“相对互补”。假设您想要 B 中不在 A 中的所有内容。我们称其为 B 中 A 的相对补集)。

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

于 2011-11-08T19:35:43.767 回答