Хочу перевести телефонный справочник сотрудников (3 основных поля - Фио, номер и заметка) из MS SQL на Elastic (так исторически сложилось, что в заметках о сотрудниках содержится значимая текстовая информация, хочу использовать возможности Elastic для поиска в ней).
Вопрос такой: какие оптимальные настройки следует задать для того, чтобы находить телефон полностью, если пользователь введёт через 8 или +7,или по нескольким последним цифрам (телефоны - русские сотовые и городские, могут быть с кодом города и без)
Тире и плюс и пр. я смогу отсечь с помощью фильтра символов, а вот как лучше задать
tokenizer и фильтры токенов?
А номера в индексе будут только российские? Другими словами, номера других стран не гарантировано не появятся и код страны можно отбросить? Правильно ли я понял, что поиск нужен только по окончанию телефона?
Спасибо за ответ. Номера - да, гарантированно только российские, сотовые и городские (как с кодом города, так и без)
Поиск может быть и по окончанию телефона, по префиксу оператора (например группе людей выдавались корпоративные симки формата 8999*******, найти их всех), также по номеру целиком, но думаю, целесообразно по крайней мере задать фильтр
Для поиска по суффиксам/префиксам, если база большая и wildcards не справляются, то можно проиндексировать пару раз с edge_ngram, и edge_ngram вместе с reverse.
Ещё вопросик разрешите: что почитать по поводу применения Elastic к анализу русского текста? Есть где нибудь мануал? (чтобы здесь лишний раз не спамить)
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.