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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请告知mongoDB中全文搜索的最佳解决方案相关的知识,希望对你有一定的参考价值。

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

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

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

答案

如果根据文档化方法将文本拆分成数组是不可行的(我可以理解您的关注点),那么我认为您应该研究一个专门的解决方案。

从MongoDB文档中引用:

MongoDB具有有趣的功能,可以轻松实现某些搜索功能。也就是说,它不是专用的全文搜索引擎。

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

  • 使用专用的全文搜索引擎而不是MongoDB的功能涉及多少工作?
  • 这会增加更多的复杂性吗/值得吗?
  • 是否可以更快/更简单地使用MongoDB,只需占用额外的磁盘空间?
  • 也许MongoDB将来会支持更好的全文功能(毕竟它正在迅速发展)
另一答案

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

以上是关于请告知mongoDB中全文搜索的最佳解决方案的主要内容,如果未能解决你的问题,请参考以下文章

在 Meteor 应用程序中实现 MongoDB 2.4 的全文搜索

确切的短语在 mongodb 全文搜索中无法正常工作

ftserver 使用,全文搜索,可搜古文古诗词

纯MongoDB实现中文全文搜索

纯MongoDB实现中文全文搜索

纯MongoDB实现中文全文搜索