我正面临Mongodb全文搜索的问题。我的集合中有100万个数据,其中包含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秒。我想知道为什么。
答案 0 :(得分:0)
最有可能是因为在正则表达式中将点字符视为“匹配任何字符”。由于您似乎试图进行精确匹配,因此可以尝试转义(以便仅匹配点字符)
db.user.find({"$and":[{"user_id":59856}],"$text":
{"$search":"\"johnsmith@gmail\.com\""}})