1

我有一个博客,我想用 mongodb 搜索标题,而不是用 solr 或弹性搜索,例如,我有这些标题,

wolkswagen
wolkswagen polo
wolkswagen passat

在大众汽车,我有大众汽车的历史,在马球和帕萨特,我有这些汽车的定义,我用空间标记标题。当我输入“wolkswagen”时,polo 和 passat 在上面,但 wolkswagen 应该在上面,应该用什么算法把 wolkswagen 放在上面?

谢谢你 :)

4

1 回答 1

3

好的,你有两个选择:

您可以使用 2.4 中的新 FTS 功能:http: //architects.dzone.com/articles/mongodb-full-text-search。我应该提一下,FTS 是实验性的,而且文档非常糟糕,所以这可能不适合你。它默认按相关性排序,因此您正在寻找的结果模式会自动应用。

您可以进行客户端处理(不建议用于大型集合),从而获得结果并手动实际测试与搜索块中每个单词的相关性。至于算法可能是这样的:

  • 迭代由空格分隔的每个单词
  • 为单词的完整程度分配 0 - 1 的值,如果匹配完整的单词,则分配 1
  • 将其添加并放回每个结果的行中。
  • 使用客户端排序按每个结果的分数进行排序。

恐怕如果不了解您的编程语言,那是我能做的最好的事情。

于 2013-02-03T15:03:42.057 回答