Mongodb全文搜索不适用于确切的“ ANYTHING.com”短语

时间:2019-02-15 11:16:54

标签: mongodb full-text-search mongotemplate

我正面临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秒。我想知道为什么。

1 个答案:

答案 0 :(得分:0)

最有可能是因为在正则表达式中将点字符视为“匹配任何字符”。由于您似乎试图进行精确匹配,因此可以尝试转义(以便仅匹配点字符)

db.user.find({"$and":[{"user_id":59856}],"$text": 
{"$search":"\"johnsmith@gmail\.com\""}})