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 секунды. Мне интересно, почему.

1 ответ

Это наиболее вероятно, потому что символ точки трактуется как "соответствовать любому символу" на языке регулярных выражений. Поскольку вы, похоже, пытаетесь сделать точное совпадение, вы можете попытаться избежать его (чтобы оно совпадало только с точечным символом)

db.user.find({"$and":[{"user_id":59856}],"$text": 
{"$search":"\"johnsmith@gmail\.com\""}})
Другие вопросы по тегам