3.2中添加到MongoDb的文本索引是否消除了对lucene的需求?

3.2中添加到MongoDb的文本索引是否消除了对lucene的需求?,mongodb,solr,cassandra,lucene,Mongodb,Solr,Cassandra,Lucene,我想有一个网站上的一些文本字段全文搜索。我可以在上面使用,但我的公司希望我使用 我正在考虑使用来构建搜索查询,但我听说您不再需要在MongoDB中这样做了,它附带了 我的问题是:在3.2中添加到MongoDb的文本索引是否消除了对lucene的需求?lucene更加灵活,因为文本搜索是其主要目的 mongodb中的全文索引非常有限。例如,每个集合只有一个索引,没有自定义标记器、分析器、停止词、有限支持的语言等。基本搜索需求应该可以,但您需要检查其功能是否符合您的要求 如果你比较一下Solr或基于

我想有一个网站上的一些文本字段全文搜索。我可以在上面使用,但我的公司希望我使用

我正在考虑使用来构建搜索查询,但我听说您不再需要在MongoDB中这样做了,它附带了


我的问题是:在3.2中添加到MongoDb的文本索引是否消除了对lucene的需求?lucene更加灵活,因为文本搜索是其主要目的

mongodb中的全文索引非常有限。例如,每个集合只有一个索引,没有自定义标记器、分析器、停止词、有限支持的语言等。基本搜索需求应该可以,但您需要检查其功能是否符合您的要求

如果你比较一下Solr或基于Lucene的ElasticSearch的功能,差距就更大了。在蒙哥没有这样的事

另一方面,使用内置文本搜索大大简化了系统,减少了开发时间和维护成本

  • Mongodb$文本索引具有词干。如果您的字段有$text索引,您可以搜索cook工作,并将出现cooking文档
  • 它还可以从文档中搜索部分单词,就像您可以搜索ook一样,它将为您提供包含bookcook等内容的文档
  • 如果lucene强大的话,有一件事是将单词标记化,因为你的意思是某种自动更正。例如,lucene中的edge-n-gram标记器将标记以下单词:
  • Word:mongodb

    到以下令牌:

    mo、on、go、od、db、mon、ong、god、odb、mong、ongo、ngob、godb等等

    取决于您为标记器设置的最小字符限制

    因此,现在当您搜索kongo时,它将检查代币,并为每个代币打分。标记得分最高的文档将作为拼写错误自动更正的结果。在mongodb中这样做很困难

  • 您可以在lucene中拥有多个索引、analyzer、Tokenizer并创建自定义索引,在mongodb中则不存在

  • 您可以直接在lucene中实现自定义stopwords和规范化文档,在mongodb中实现thsi是一项重要的工作

  • 在保存数据和搜索数据时,可以在lucene中使用不同的索引,这非常强大

  • 另一方面,我在mongodb上有一个项目,我们想实现所有这些,这是很多自定义代码。我们转向elasticsearch,生活得到了整理