два текстовых поля, по которым необходимо строить индекс. Данные могут приходить в разных кейсах и нужно уметь быстро по ним искать. Одно из полей может содержать данные на экзотических языках (вьетнамском, корейском, японском и т.д.)
Пока вижу такие пути:
1) Принудительно приводить все данные к единому кейсу перед записью, строить индекс;
2) Делать доп атрибут, содержащий копию данных в lowerCase и строить по нему индекс;
3) Строить индекс с учётом collation и затем выполнять запросы с указанием collation. В этом варианте смущает, что данные могут быть в locale != 'en'
могу ошибаться, но текстовый индекс в монго и так case insensitive. Но искать текст в монго проблематично
Первое текстовое поле в данном случае email, а второе - текстовый код из нескольких символов (<=5). Надеюсь, что при наличии индекса серьезных проблемы быть не должно. Но буду тестить в любом случае
Поиск по полному совпадению или подстроке или вообще с опечатками?
Полное совпадение
Тогда рядом поле с нижним регистром и обычный индекс по нему самое простое и стабильное решение
Обсуждают сегодня