我的数据库中的文档在其他字段中有名称和描述。我想允许用户通过提供一些关键字来搜索这些文档。关键字应该用于在名称和描述字段中查找。我已经阅读了mongoDB documentation on full text search,如果我想在我的文档的名称字段中搜索关键字,它看起来真的很好很容易。但是,描述字段包含自由格式文本,最多可包含2000个字符,因此每个文档可能有几百个字。我可以用与名称相同的方式对待它们,并将整个描述分成单独的单词并将其存储为另一个类似标签的数组(根据Mongo示例),但这似乎是一个可怕的想法 - 每个文档的大小几乎可以加倍,还有像点,逗号等字符。
我知道有针对这类问题的专门解决方案,我只是看着Lucene.Net,我也看到Solr在这里和那里提到过。
我是否应该在mongoDB中实现此搜索功能,还是应该使用专门的解决方案?目前我只有一个mongod实例和一个web服务器实例。我们可能需要稍后扩展,但现在我只能使用它。我很感激有关如何实现此功能的任何建议。
如果根据文档化方法将文本拆分成数组是不可行的(我可以理解您的关注点),那么我认为您应该研究一个专门的解决方案。
从MongoDB文档中引用:
MongoDB具有有趣的功能,可以轻松实现某些搜索功能。也就是说,它不是专用的全文搜索引擎。
因此,对于更高级的全文搜索功能,我认为专用引擎更适合。我没有这个领域的经验,所以除了我在同一条船上的想法之外,我不能提供太多关于这里建议的方式:
计划在未来提供全文搜索支持。但是现在你必须和Solr和朋友一起去。使用内置的“全文”功能并不适合现实世界的使用。