Идея: поиск похожих URL

Выкладываем свои наработки
Ответить
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Идея: поиск похожих URL

Сообщение samdark »

Полез в мануал PHP и в очередной раз наткнулся на http://ru.php.net/manual/en/function.levenshtein.php. Возникла идея использовать на 404-х страницах для вывода похожих URL. Вот только как оформить пока не очень ясно: action-ом или каким-то более универсальным расширением…
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение Ekstazi »

Не совсем понимаю, в чем идея ? Можете описать подробней ?
antirek
Сообщения: 11
Зарегистрирован: 2009.11.25, 20:44
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение antirek »

Идея проста, пользователь попадает на 404 страницу на вашем сайте. Вопрос: как он туда попал? По ошибочному УРЛ, который он набрал руками или ему выдал поисковик. Т.е. у нас есть некоторый УРЛ, который нам дает пользователь. Но на нашем сайте нет такого, нет такой страницы.

"Что делать?" - спросите Вы.

А Sam Dark и говорит: "О, функция Левенштайна вам в помощь".

Задача такова: что мы имеем предложить пользователю из ассортимента нашего сайта, если пользователь пришел на него по ошибочному УРЛ?

Например, пользователь ввел "moisait.ru/mali", а ведь возможно, что хотел "moisait.ru/mail" или "moisait.ru/malibu" (уж такие-то страницы у нас есть : )
И таких вариантов может быть много. Поэтому почему бы не использовать аналитические возможности функции Левенштайна?
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение SpiLLeR »

Интересная идея.
Можно начать с экшена, а там и в расширение перерастет.
Предупрежден - значит вооружен.
devKP.ru
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение slavcodev »

А причем тут экшн? Что его нужно будет прикручивать к каждому контроллеру?
Может как-то расширить CURlManager, который парсит урл до того как вызовет контроллер.
Жду Yii 3!
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение samdark »

Экшн я хотел для использования его в контроллере для отображения 404-й, но расширить CURlManager — тоже очень неплохая идея.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение slavcodev »

Сам же предложил, но теперь хотел бы забрать свое предложение.
После прочтения, темы Управление отображением ошибок в действии контроллера изменил свое мнение. Через экшн будет удобнее. ИМХО.
Жду Yii 3!
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение Ekstazi »

Хорошая идея, поковыряю фрэймвок и посмотрим. Имел опыт с urlManager, но не уверен что это хорошая идея.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение Ekstazi »

может повесить на catchAllRequest ?
А уже в нем, если все ок, то
$route=$this->getUrlManager()->parseUrl($this->getRequest());
Yii::app()->runController($route);


Есть одна особенность, прийдется этому расширения в параметрах передавать имена всех контроллеров и акшинов в них.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение samdark »

По моему всё-таки логичнее не каждый раз дёргать расширение, а вызывать action когда уже случилась 404, но до её непосредственного вывода. В этом случае контроллеры и action-ы передавать не надо т.к. они уже отработали.

Обычно поиск производится по какому-то значению в базе. У меня на RMCreative, например, такое значение будет Post.alias, в котором хранится необходимая часть URL.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение slavcodev »

зачем такие сложности? если по ссылке выше, показано как в конфиге можно указать контроллер и екшн, которые будут ошибки показывать, этот экшн сделать и все, одним подключением в конфиге включаем данную фичу.
Жду Yii 3!
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение Ekstazi »

Акшн должен знать об остальных страницах на сайте. То есть о всех контролерах и их акшнов.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение samdark »

Можно предоставить метод для добавления массива URL.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение Ekstazi »

Тогда вариант с акшином самый лучший.
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение SpiLLeR »

Если экшену передавать все URL сайта, насколько быстро все это будет работать...
Предупрежден - значит вооружен.
devKP.ru
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение samdark »

Отлично будет работать: допустим, при добавлении поста генерим URL на его просмотр и отдаём расширению. Расширение это дело пишет в базу. При поиске просто делаем запрос ничего не добавляя. Вот только надо посмотреть, есть ли аналог levenshtein() для MySQL/PostgreSQL/MSSQL, чтобы не вытаскивать все URL.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение slavcodev »

а sitemap + cache тут никак не поможет?
Жду Yii 3!
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Идея: поиск похожих URL

Сообщение Ekstazi »

sitemap поможет.
Ответить