mongodb的全文搜索算法

时间:2013-02-03 14:46:39

标签: mongodb

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

wolkswagen
wolkswagen polo
wolkswagen passat

在wolkswagen,我有wolkswagen的历史,马球和帕萨特,我有那些车的定义,我用空间标记了标题。当我输入“wolkswagen”时,polo和passat排在最前面,但是wolkswagen应该排在最前面,将wolkswagen放在最顶端的算法应该是什么?

谢谢你:)

1 个答案:

答案 0 :(得分:2)

好的,你有两个选择:

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

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

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

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