请为mongoDB中的全文搜索提供最佳解决方案

请为mongoDB中的全文搜索提供最佳解决方案,mongodb,lucene.net,Mongodb,Lucene.net,我的数据库中的文档在其他字段中有名称和描述。我想让用户通过提供一些关键字来搜索这些文档。关键字应用于在名称和描述字段中查找。我已经阅读了,如果我想在我的文档的名称字段中搜索关键字,它看起来非常好而且简单。但是,“描述”字段包含自由格式的文本,最多可以包含2000个字符,因此每个文档可能有几百个单词。我可以将它们视为名称,将整个描述拆分为单独的单词,并将其存储为另一个类似标签的数组(根据Mongo的示例),但这似乎是一个糟糕的想法——每个文档的大小几乎可以增加一倍,加上有点、逗号等字符 我知道对于

我的数据库中的文档在其他字段中有名称和描述。我想让用户通过提供一些关键字来搜索这些文档。关键字应用于在名称和描述字段中查找。我已经阅读了,如果我想在我的文档的名称字段中搜索关键字,它看起来非常好而且简单。但是,“描述”字段包含自由格式的文本,最多可以包含2000个字符,因此每个文档可能有几百个单词。我可以将它们视为名称,将整个描述拆分为单独的单词,并将其存储为另一个类似标签的数组(根据Mongo的示例),但这似乎是一个糟糕的想法——每个文档的大小几乎可以增加一倍,加上有点、逗号等字符

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


我应该在mongoDB中实现这个搜索功能,还是应该使用专门的解决方案?目前我只有一个mongod实例和一个web服务器实例。我们以后可能需要扩展,但现在我只使用这些。如果您能就如何实现此功能提出任何建议,我将不胜感激。

如果按照文档化的方法将文本拆分为一个数组是不可行的(我可以理解您的顾虑),那么我认为您应该寻找一个专门的解决方案

引自MongoDB文档:

MongoDB具有有趣的功能 这使得某些搜索功能 容易的。也就是说,它不是一个专门的 全文搜索引擎

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

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

    • 未来计划提供全文搜索支持。但是现在你必须和Solr&friends一起去。使用内置的“全文”功能并不真正适合实际使用。

      计划在将来提供全文搜索支持。但是现在你必须和Solr&friends一起去。在功能上使用内置的“全文”并不真正适合现实世界的使用。我已经开始集成全文搜索部分。还发现两者之间有很大的特征重叠。:)虽然Mongo很成熟,我会坚持使用它,但我想一个人可以自己使用ES。看起来很有希望。由于简单和快速开发的需要,我正在考虑MongoDB作为一个新项目。我目前正在研究Sphinx,它将提供一种提取文档ID的方法,然后使用它从MongoDB提取结果文档。我认为,如果MongoDB在将来添加全文搜索,这将为您提供一条平坦的道路。还有谁有这方面的经验吗?