Примерный поиск по полю SQL ?

12
D
На сайте с 28.06.2008
Offline
1114
654

Есть вообще такое понятие?

Мне нужно искать совпадения адресов.

Например в переменной значение: "ул. Братьев Игнатовых, д. 28"

А в базе - "улица Братьев Игнатовых, 28"

Ну и как вы понимаете тут могут быть куча вариантов, неизменны только дом и название улицы.

Как искать такие совпадения?

R
На сайте с 01.04.2013
Offline
73
#1

Через регулярные выражения, предварительно очищая от: ул., Улица, д., Дом, "," и тд

edogs software
На сайте с 15.12.2005
Offline
775
#2

Если Вы под чем-то тяжелым, то почитайте https://habr.com/en/post/342434/

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

---------- Добавлено 18.10.2019 в 12:13 ----------

rafonets:
Через регулярные выражения, предварительно очищая от: ул., Улица, д., Дом, "," и тд
Задолбаешься все варианты отслеживать которые надо выкинуть.
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
D
На сайте с 28.06.2008
Offline
1114
#3
edogs:
вероятно оптимальным способом будет использовать полнотекстовый поиск

спс, попробую

---------- Добавлено 18.10.2019 в 12:27 ----------

edogs, да, это

SELECT * FROM `articles` WHERE MATCH (title,body) AGAINST ('database');

подошло идеально.

https://habr.com/ru/post/40218/

Таггу x_x
На сайте с 31.10.2005
Offline
445
#4
Dram:
Цитата:
SELECT * FROM `articles` WHERE MATCH (title,body) AGAINST ('database');
подошло идеально.
https://habr.com/ru/post/40218/

Но на самом деле нет. Скоро ты поймёшь, что этот полнотестовый поиск либо находит всё подряд с какого бодуна не понятно, либо вообще нигуя ни находит ) И ты начнешь играть с релевантностью. Пока в конце концов не напишешь свой обработчик на основе LIKE запросов. Ну например разбиваешь запрос на термины (слова) и ищешь по ним простыми WHERE `field` LIKE `%слово%`, удалив предварительно предлоги и проч мусор. Далее уже с полученными результатами что-то сам делаешь подручными (php, например) средствами.

Результат будет гораздо лучше, предсказуемее, понятнее.

☠️☠️☠️
D
На сайте с 28.06.2008
Offline
1114
#5

Tarry, уже понял :))) играюсь с Булеан Мод, плюсами и минусами :) но все ближе подхожу к мысли что уже бы давно написал парсер на регулярках

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

В FULLINDEX есть прекрасная настройка, которая убирает слова менее количества символов. Очень ускоряет поиск.

---------- Добавлено 18.10.2019 в 14:04 ----------

и ищешь по ним простыми WHERE `field` LIKE `%слово%`

И в базе состоящего из 500К записей Mysql охеревает от каждого такого запроса.

---------- Добавлено 18.10.2019 в 14:05 ----------

Ну и как вы понимаете тут могут быть куча вариантов, неизменны только дом и название улицы.

Базу обрабатывать. ДА ДА ДА... именно тупыми найти/заменить и привести это всё в меняемый вид. Тоже мне BIGDATA нашлась в пару улиц, где данные практически не возможно исправить, а искать надо :D

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Solmyr
На сайте с 10.09.2007
Offline
501
#7

По-нормальному работать с адресами очень тяжело.

IL
На сайте с 20.04.2007
Offline
435
#8
Solmyr:
По-нормальному работать с адресами очень тяжело.

Геокодирование от "сторонних сервисов" есть. Вполне справляется. Можно приводить адреса к "единому виду" и искать с учётом этого..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
edogs software
На сайте с 15.12.2005
Offline
775
#9
Dram:
Tarry, уже понял :))) играюсь с Булеан Мод, плюсами и минусами :) но все ближе подхожу к мысли что уже бы давно написал парсер на регулярках

Булеан мод правильное решение в принципе.

По поводу регулярок и лайк%% всяких - тут нюанс в том, что полнотекстовый поиск (даже булевский) ищет по хитросделанным из слов самой базой индексам. А регулярки и лайки будут искать тупо перебирая весь текст. Разница в скорости при большой базе очень заметна.

Таггу x_x
На сайте с 31.10.2005
Offline
445
#10
LEOnidUKG:
И в базе состоящего из 500К записей Mysql охеревает от каждого такого запроса.

500к фигня, да и от фуллтектс поиска охреневает не меньше

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий