@Neka_D

Как найти совпадение строки без порядка слов в postgresql?

Есть иерархическая таблица адресов (простой adjacency list). Нужно просто сделать поиск адреса по ненормированному пользовательскому запросу. К примеру есть такие записи в таблице

Россия, "россия" (страна)
|- Пермь, "россия пермь" (город)
|- Алтайская, "россия пермь алтайская" (улица)
|- 25, "росиия пермь алтайская 25" (номер дома)

Здесь начала идет поле "имя", а в конце в скобках тип единицы адреса. В кавычках денормализированная строка всех имен родительского дерева, это может быть массив имен - не важно, БД на этапе проектирования. Нужно, чтобы порядок слов не влиял на выборку, т.е. запрос "пермь 25 алтайская" или любой другой пользовательский ввод адреса находил именно последнюю запись в вышепреведенной иерархии.
Полнотекстовый поиск тут крайне избыточен - словарей как таковых нет, вся таблица - это и есть словарь, и для каждой записи словарем будет денормализованный адрес.

Наведите на путь истинный пожалуйста, я до такого даже нагуглить не смог, по большей части народ интересуется полнотекстовым поиском, но тут не то.
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы