- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть вообще такое понятие?
Мне нужно искать совпадения адресов.
Например в переменной значение: "ул. Братьев Игнатовых, д. 28"
А в базе - "улица Братьев Игнатовых, 28"
Ну и как вы понимаете тут могут быть куча вариантов, неизменны только дом и название улицы.
Как искать такие совпадения?
Через регулярные выражения, предварительно очищая от: ул., Улица, д., Дом, "," и тд
Если Вы под чем-то тяжелым, то почитайте https://habr.com/en/post/342434/
В легком случае вероятно оптимальным способом будет использовать полнотекстовый поиск, можно прикрутить от сфинкса.
---------- Добавлено 18.10.2019 в 12:13 ----------
Через регулярные выражения, предварительно очищая от: ул., Улица, д., Дом, "," и тд
вероятно оптимальным способом будет использовать полнотекстовый поиск
спс, попробую
---------- Добавлено 18.10.2019 в 12:27 ----------
edogs, да, это
подошло идеально.
https://habr.com/ru/post/40218/
Цитата:
SELECT * FROM `articles` WHERE MATCH (title,body) AGAINST ('database');
подошло идеально.
https://habr.com/ru/post/40218/
Но на самом деле нет. Скоро ты поймёшь, что этот полнотестовый поиск либо находит всё подряд с какого бодуна не понятно, либо вообще нигуя ни находит ) И ты начнешь играть с релевантностью. Пока в конце концов не напишешь свой обработчик на основе LIKE запросов. Ну например разбиваешь запрос на термины (слова) и ищешь по ним простыми WHERE `field` LIKE `%слово%`, удалив предварительно предлоги и проч мусор. Далее уже с полученными результатами что-то сам делаешь подручными (php, например) средствами.
Результат будет гораздо лучше, предсказуемее, понятнее.
Tarry, уже понял :))) играюсь с Булеан Мод, плюсами и минусами :) но все ближе подхожу к мысли что уже бы давно написал парсер на регулярках
В FULLINDEX есть прекрасная настройка, которая убирает слова менее количества символов. Очень ускоряет поиск.
---------- Добавлено 18.10.2019 в 14:04 ----------
И в базе состоящего из 500К записей Mysql охеревает от каждого такого запроса.
---------- Добавлено 18.10.2019 в 14:05 ----------
Базу обрабатывать. ДА ДА ДА... именно тупыми найти/заменить и привести это всё в меняемый вид. Тоже мне BIGDATA нашлась в пару улиц, где данные практически не возможно исправить, а искать надо :D
По-нормальному работать с адресами очень тяжело.
По-нормальному работать с адресами очень тяжело.
Геокодирование от "сторонних сервисов" есть. Вполне справляется. Можно приводить адреса к "единому виду" и искать с учётом этого..
Tarry, уже понял :))) играюсь с Булеан Мод, плюсами и минусами :) но все ближе подхожу к мысли что уже бы давно написал парсер на регулярках
Булеан мод правильное решение в принципе.
По поводу регулярок и лайк%% всяких - тут нюанс в том, что полнотекстовый поиск (даже булевский) ищет по хитросделанным из слов самой базой индексам. А регулярки и лайки будут искать тупо перебирая весь текст. Разница в скорости при большой базе очень заметна.
И в базе состоящего из 500К записей Mysql охеревает от каждого такого запроса.
500к фигня, да и от фуллтектс поиска охреневает не меньше