LINUX.ORG.RU

История изменений

Исправление greatperson, (текущая версия) :

В PostgtreSQL есть полнотекстовый поиск

Такой вариант тоже рассматривал, сейчас его вижу как основной, наверное, потому что всё остальное не получилось. То есть для каждого объекта я буду хранить его полный адрес со всеми возможными синонимами на каждом уровне, что-то в духе:

Россия Российская Федерация РФ, область Нижегородская, город Нижний Новгород НН, проспект Гагарина имени Гагарина, дом 1к1 1 корпус 1 д1к1

Тогда да, можно искать просто по строке, и это будет быстро. Только вот один момент с сортировкой результатов: в Нижнем Новгороде есть улица Нижегородская. И запрос «НН, Нижегородская, 1» должен показать мне именно дом на этой улице, но при таком подходе в него попадут вообще все дома 1 внутри Нижегородской области. Вот я совсем не понимаю, как с этим быть. Есть идеи?

Исправление greatperson, :

В PostgtreSQL есть полнотекстовый поиск в котором поддерживается морфология.

Такой вариант тоже рассматривал, сейчас его вижу как основной, наверное, потому что всё остальное не получилось. То есть для каждого объекта я буду хранить его полный адрес со всеми возможными синонимами на каждом уровне, что-то в духе:

Россия Российская Федерация РФ, область Нижегородская, город Нижний Новгород НН, проспект Гагарина имени Гагарина, дом 1к1 1 корпус 1 д1к1

Тогда да, можно искать просто по строке, и это будет быстро. Только вот один момент с сортировкой результатов: в Нижнем Новгороде есть улица Нижегородская. И запрос «НН, Нижегородская, 1» должен показать мне именно дом на этой улице, но при таком подходе в него попадут вообще все дома 1 внутри Нижегородской области. Вот я совсем не понимаю, как с этим быть. Есть идеи?

Исправление greatperson, :

В PostgtreSQL есть полнотекстовый поиск в котором поддерживается морфология. Видимо нужно разобраться как задаются морфологические правила там.

Такой вариант тоже рассматривал, сейчас его вижу как основной, наверное, потому что всё остальное не получилось. То есть для каждого объекта я буду хранить его полный адрес со всеми возможными синонимами на каждом уровне, что-то в духе:

Россия Российская Федерация РФ, область Нижегородская, город Нижний Новгород НН, проспект Гагарина имени Гагарина, дом 1к1 1 корпус 1 д1к1

Тогда да, можно искать просто по строке, и это будет быстро. Только вот один момент с сортировкой результатов: в Нижнем Новгороде есть улица Нижегородская. И запрос «НН, Нижегородская, 1» должен показать мне именно дом на этой улице, но при таком подходе в него попадут вообще все дома 1 внутри Нижегородской области. Вот я совсем не понимаю, как с этим быть. Есть идеи?

Исходная версия greatperson, :

Такой вариант тоже рассматривал, сейчас его вижу как основной, наверное, потому что всё остальное не получилось. То есть для каждого объекта я буду хранить его полный адрес со всеми возможными синонимами на каждом уровне, что-то в духе:

Россия Российская Федерация РФ, область Нижегородская, город Нижний Новгород НН, проспект Гагарина имени Гагарина, дом 1к1 1 корпус 1 д1к1

Тогда да, можно искать просто по строке, и это будет быстро. Только вот один момент с сортировкой результатов: в Нижнем Новгороде есть улица Нижегородская. И запрос «НН, Нижегородская, 1» должен показать мне именно дом на этой улице, но при таком подходе в него попадут вообще все дома 1 внутри Нижегородской области. Вот я совсем не понимаю, как с этим быть. Есть идеи?