Есть ли способ поиска документов по усеченным значениям - PullRequest
1 голос
/ 25 февраля 2020

У меня есть коллекция, содержащая документы пользователей с контактными номерами. Например, контактный номер может выглядеть следующим образом: «082 807 0949» или «082 8070 949». Я хочу получить пользователя по контактному номеру, который урезан. Поскольку функция match проверяет точные значения, мой запрос ничего не возвращает.

Есть ли способ, которым я могу сначала обрезать данные документа перед выполнением поиска, или есть способ, которым я могу создать индекс, который урезал бы все контактные номера для индекса.

См. Код под запросом, который не возвращает данных:

q.Get(
    q.Match(q.Index('guests_by_contact_number'), '0828070949')
)

1 Ответ

2 голосов
/ 25 февраля 2020

ReplaceStr($phone, " ", "") это билет. Например:

db> ReplaceStr("082 8070 949", " ", "")
'0828070949'

Вы можете объединить это с привязкой , чтобы обрезать номер телефона во время записи. Сделав термин поверх привязки, вы можете искать, используя нормализованный номер телефона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...