mongodb全文检索策略

标签 mongodb elasticsearch

我们正在尝试开发一种使用 elasticsearch 在我们的 mongodb 实例上进行全文搜索的策略。看起来我们想用作过滤器的每个键都必须包含在弹性索引中。潜在地,我们可能希望使用 mongo 中的每个键作为过滤器 - 即对描述进行全文搜索,按日期和电话号码过滤。有没有人有任何将全文添加到 mongo 的真实经验可以分享?

也许我们可以将elasticsearch用作数据库?

最佳答案

我认为没有任何理由将 ElasticSearch 与 MongoDb 结合使用,只是将 ElasticSearch 用作必须搜索的文档的单独文档存储。是的,你甚至可以作为整个数据库。当然,这取决于您的领域模型和其他因素。

如果您不需要词干、模糊搜索、复杂的通配符搜索,您可以使用 mongoDb 进行搜索。插入新文档时,将其拆分为小写单词,例如添加到数组“单词”中。稍后您可以使用 regex 对该数组执行搜索请求。不是你不能在这个正则表达式中使用 I (忽略大小写)选项,你只能搜索 LIKE% 通配符(或没有通配符),否则搜索不会使用 mongoDb 索引.

还有一个选择-您可以尝试查找river对于 mongoDb

另一种选择 - 如果您使用 Java,则使用 Lucene。可能您将能够扩展 Directory 类,这样 Lucene 会将索引存储在 MongoDb 中,而不是文件系统或 RAM 中。我没有在这方面做过任何研究,但我认为这是可能的

关于mongodb全文检索策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179414/

相关文章:

elasticsearch - 如何编写脚本字段以获取状态转换之间的天数

mongodb - 在 Windows 中更改 MongoDB 3.6 默认数据库路径

python - Mongo 查询不识别空记录

mongodb - 对 mongodb 中的对象 id 数组执行 $lookup?

elasticsearch - Elasticsearch衰减参数

database - 我们可以通过替换Postgres来使用Elastic Search作为后端数据存储吗?

elasticsearch - 如何在ElasticSearch中显示DSL(查询)处理?

elasticsearch - Elasticsearch策展人- “--older-than 6”

node.js - Mongodb 身份验证应用程序 - db.auth()

mongodb 乘法聚合运算符