Вход
Регистрация

Индекс нечеткого поиска

Назначение

Поиск по данным, содержащим текст, является задачей нетривиальной: в тексте могут быть орфографические ошибки, один и тот же объект можно вполне корректно описать разными строками. Поэтому для данной задачи простое сравнение строк на равенство друг другу неприемлемо.

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

Примеры применения

Разбор адресов. Формат хранения адресов (например, в персональных данных клиентов) может оказаться довольно произвольным. Очистить эти данные от ошибок, выявить устаревшие и недостоверные сведения, необходимо произвести разбор строк с адресом. Для этого могут быть использованы эталонные справочники, поиск по которым должен быть нечетким.

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

Алгоритм обработки

Получение индекса нечеткого поиска основано на построении префиксного дерева из всех значений заданного поля в наборе данных. Если последовательно собрать все символы, лежащие в узлах этого дерева на пути от корня к листу, то будет получена одна из строк в индексируемом поле. Количество листьев дерева равно количеству уникальных строк.

Для поиска по этой структуре данных используется отдельный обработчик Слияние с индексом нечеткого поиска.

Рассылка материалы о Loginom