我的数据库中的文档在其他字段中有名称和描述.我想允许用户通过提供一些关键字来搜索这些文档.关键字应该用于在名称和描述字段中查找.我已经阅读了
mongoDB documentation on full text search,如果我想在文档的名称字段中搜索关键字,它看起来非常简单.但是,描述字段包含自由格式文本,最多可包含2000个字符,因此每个文档可能有几百个字.我可以用与名称相同的方式对待它们,并将整个描述分成单独的单词并将其存储为另一个类似标签的数组(根据Mongo示例),但这似乎是一个可怕的想法 – 每个文档的大小几乎可以加倍,还有像点,逗号等字符.
我知道有针对这类问题的专门解决方案,我只是看着Lucene.Net,我也看到Solr在这里和那里提到过.
我是否应该在mongoDB中实现此搜索功能,还是应该使用专门的解决方案?目前我只有一个mongod实例和一个web服务器实例.我们可能需要稍后扩展,但现在我只能使用它.我很感激有关如何实现此功能的任何建议.
最佳答案 如果根据文档化方法将文本拆分成数组是不可行的(我可以理解您的关注点),那么我认为您应该研究一个专门的解决方案.
从MongoDB文档中引用:
MongoDB has interesting functionality
that makes certain search functions
easy. That said, it is not a dedicated
full text search engine.
因此,对于更高级的全文搜索功能,我认为专用引擎更适合.我没有这个领域的经验,所以除了我在同一条船上的想法之外,我不能提供太多关于这里建议的方式:
>使用专用的全文搜索引擎而不是MongoDB的功能涉及多少工作?
>这会增加更多的复杂性吗/值得吗?
>使用MongoDB会更快/更简单吗?只需占用额外的磁盘空间?
>也许MongoDB将来会支持更好的全文功能(毕竟它正在迅速发展)