MongoDB是relational db + lucene的有效替代品吗?[已关闭]

2022-09-01 09:04:10

在一个新项目中,我需要硬性地使用lucene来实现搜索器。这个搜索器将是项目中非常重要(和重要)的部分。用MongoDb替换Relational Database + Lucene是否有效或方便?

编辑:好吧,我会澄清:我不是在问风险,我可以在这个项目中付出代价。我的观点是:MongoDB是针对这种事情的吗?我能做一个完整的搜索引擎,具有与Lucene相同的性能吗?一位朋友指出MongoDB是替代的,但我不认为Lucene的性能是否与文档替代方案一起出现(然后,我也会在MongoDB中看到它),或者,换句话说,倒置索引和optimitizations是独立于文档方向的。


答案 1

从技术上讲,您可以使用MongoDB进行全文搜索,但是您错过了全文搜索提供商必须提供的很多东西。我喜欢MongoDB,但如果实现时间是一个问题,我会把它与全文搜索提供程序(如Lucene或Sphinx)结合起来。我认为MongoDB索引单词数组的便捷能力最好留给基于标记的标记和搜索,而不是全文搜索。

搜索(信息检索)不仅仅是抓取任何匹配的文档,如果您希望搜索结果具有任何相关性,您将需要TF-IDF,短语匹配(序列得分较高的单词)或任何数量的其他IR技术来提高搜索精度。如果你使用MongoDB,你需要从头开始实现它。

如果你真的想从头开始实现它,但不关心原始存储方面的事情,MongoDB非常接近你可以在上面实现它的最佳数据库存储(想不出许多其他的),但这仍然不能使它成为一个很好的选择。


答案 2

CouchDb似乎是通过couchdb-lucene项目使用Lucene的另一种可能的替代方案