MongoDB是否是关系数据库+ Lucene的有效替代方案?

在一个新项目中,我需要在搜索器实现中使用lucene。这个搜索者将是该项目中非常重要(也是很大)的一部分。用MongoDb替换关系数据库+ Lucene是否有效或方便?

编辑:好的,我要澄清:我不是在问风险,我可以在这个项目中付出这个代价。我的观点是:MongoDB是否针对此类事情?我可以使用与Lucene相同的性能来制作一个完整的搜索引擎吗?一位朋友指出我可以选择MongoDB,但是我看不到Lucene的性能是否与文档替代一起出现(然后,我也将在MongoDB中看到它),或者另一方面,反向索引和优化是完整的与文档方向无关。

最佳答案

从技术上讲,您可以使用MongoDB进行全文搜索,但是您却错过了全文搜索提供商必须提供的许多功能。我喜欢MongoDB,但如果完全不关心实现时间,可以将其与全文搜索提供程序(例如Lucene或Sphinx)结合使用。我认为MongoDB索引单词数组的便捷功能比全文搜索更好地留给基于标记的标记和搜索。

搜索(信息检索)不仅仅是获取任何匹配的文档,如果您希望搜索结果具有任何相关性,那么您将需要TF-IDF,词组匹配(单词序列中的单词)得分更高)或其他多种IR技术来提高搜索精度。如果使用MongoDB,则需要从头开始全部实现。

如果您真的想从头开始实现所有功能,但又不想在原始存储方面打扰,那么MongoDB与您可以在上面实现它的最佳数据库存储非常接近(不会想到很多),但是仍然不是一个很好的选择。