请告知mongoDB中全文搜索的最佳解决方案

时间:2011-03-15 09:10:44

标签: mongodb lucene.net

我的数据库中的文档在其他字段中包含名称和说明。我想允许用户通过提供一些关键字来搜索这些文档。关键字应该用于在名称和描述字段中查找。我已经阅读了mongoDB documentation on full text search,如果我想在文档的名称字段中搜索关键字,它看起来非常简单。但是,描述字段包含自由格式文本,最多可包含2000个字符,因此每个文档可能有几百个字。我可以用与名称相同的方式对待它们,并将整个描述分成单独的单词并将其存储为另一个类似标签的数组(根据Mongo示例),但这似乎是一个可怕的想法 - 每个文档的大小几乎可以加倍,还有像点,逗号等字符。

我知道有针对此类问题的专门解决方案,我只是看着Lucene.Net,我也看到了Solr在这里和那里提到过。

我是否应该在mongoDB中实现此搜索功能,还是应该使用专门的解决方案?目前我只有一个mongod实例和一个web服务器实例。我们可能需要稍后扩展,但现在我只能使用它。我很感激有关如何实现此功能的任何建议。

2 个答案:

答案 0 :(得分:1)

如果根据记录的方法将文本拆分成数组是不可行的(我可以理解你的问题),那么我认为你应该研究一个专门的解决方案。

引用MongoDB文档:

  

MongoDB具有有趣的功能   这使得某些搜索功能   简单。也就是说,它不是专用的   全文搜索引擎。

因此,对于更高级的全文搜索功能,我认为专用引擎更适合。我没有这方面的经验,所以除了我在同一条船上的想法之外,我不能从这里提出太多建议:

  • 使用专用的全文搜索引擎代替MongoDB的功能涉及多少工作?
  • 这会增加更多的复杂性吗/值得吗?
  • 使用MongoDB会更快/更简单吗?只需点击额外的磁盘空间?
  • 也许MongoDB将来会支持更好的全文功能(毕竟它正在快速发展)

答案 1 :(得分:1)

计划在未来提供全文搜索支持。但是现在你必须选择Solr&朋友。使用内置的“全文”功能并不适合现实世界的使用。