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

问题描述 投票:4回答:2

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

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

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

mongodb lucene.net
2个回答
1
投票

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

从MongoDB文档中引用:

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

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

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

1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.