mongodb - Mongodb全文搜索不适用于确切的“ANYTHING.com”短语
问题描述
我面临着 Mongodb 全文搜索的问题。我的集合中有 1M 数据有email
字段。
我为多个字段创建了文本索引。当我使用查询时
db.user.find({"$and":[{"user_id":59856}],"$text":{"$search":"\"johnsmith@gmail.com\""}})
它需要超过25秒。但是当我删除.com
喜欢
db.user.find({"$and":[{"user_id":59856}],"$text":{"$search":"\"johnsmith@gmail\""}})
最多需要 3-4 秒。我想知道为什么。
解决方案
这很可能是因为点字符在正则表达式中被视为“匹配任何字符”。由于您似乎正在尝试进行完全匹配,因此您可以尝试转义它(以便它仅匹配点字符)
db.user.find({"$and":[{"user_id":59856}],"$text":
{"$search":"\"johnsmith@gmail\.com\""}})
推荐阅读
- ruby-on-rails - 期望响应具有成功状态代码 (2xx) 但它是 401
- python - QLineEdit 设置标题大小写
- html - mwlDraggable (Drag & Drop) - 移动的最小长度
- powerbi - Power BI 非活动关系
- python - 需要代码方法/建议 [python,django,html]
- c++ - 链表迭代器实现 C++
- java - 无法正确构建运行条件正确的 do while 循环
- c++ - 如何使变量始终等于某些计算的结果?
- javascript - 如何修复 csv 到 json 转换器模块?
- ios - Swift 4 Refresh Control 不流畅但总是跳转