Поиск по цитатам

Опубликовано tulvit - вт, 08/07/2014 - 10:38

Прикрутил недавно на scomedy.com поиск по цитаткам. Цитат уже накопилось больше 16к и поиск по ним сам собой напрашивался. Хотел сделать давно, но руки дошли только недавно. Думал сложно будет, ан все оказалось более чем просто, дело буквально нескольких кликов.

Поиск по цитатам

Искать можно не только по всем цитатам, но и по цитатам определенного комика:

Поиск по цитатам Джорджа Карлина

Использовал входящий в ядро Друпала модуль Search, хотя вариантов реализации поиска масса, но пока решил остановиться на самом простом. Работает быстро (строится индекс и ищется уже по нему), а релевантность не нужна, т. к. сортировка идет по рейтингу цитат. Ищет по точному вхождению, т. е. для запросов "kid" и "kids" выдача разная. Это плохо. Надо думать. Но пока сойдет и так.

Поиском, на удивление, пользуются:

Статистика использования поиска

Понятное дело, что из этих 700 запросов добрую часть накрутил я сам разными тестами, но десяток-другой в день естественных есть. А при росте трафика под сотню будет как минимум, так что стоило того.

По глупости думал, что поиск сможет принести трафика по запросам вида "quotes/jokes about/on %keyword%", дабы таких НЧ сотни и тысячи, и при БД цитат в несколько десятков тысяч по каждому ключу можно будет иметь вполне себе релевантный результат. Т. е. хотел сделать страничку "популярные поиски" и скормить ее гуглу. Но идею забросил. Беглый анализ показал, что в топе таких страниц нет, только лишь изредка встречаются на десятых страницах. Что встречается в топе, так это подборки по тегам. И хотя цитаты по тегу "death" могут быть такие же, как и при результатах поиска по "death", суть этих подборок разная - в первом случае ручная систематизация (ну или автоматическое назначение тегов), во втором - чисто генерированный результат. И гуглу по душе исключительно первое.

Впрочем, как только все уляжется с переездом на новый домен, все-таки добавлю в гугл вебмастерс с десяток-другой страничек вида quotes?keys=НЧ, чисто для эксперимента, хотя и заранее зная, что ничего не выгорит. Ну а как в этом убежусь на собственном опыте, пожалуй закрою в роботсе страницы результатов поиска (что таки правильное решение исходя из логики) и буду смотреть в сторону тегирования, на сколько это может пойти в плюс как в плане трафика, так и в плане удобства для пользователей. Благо с трафиком на сайте последнее отследить довольно просто, уже в день релиза какой-то функции видно, на сколько она пользуется спросом.

Запросы без результатов. Да, их много, несмотря на обширную базу. С одной стороны это запросы с орфографическими ошибками, слишком многословные запросы, запросы уж слишком на естественным языке вида "search jokes about...". С другой - поиск по цитатам определенного комика, где их всего может быть пару десятков, и, понятное дело, мало что в них найдется.

Для таких случаев заместо стандартной отписки вида Sorry, no quotes found. решил давать разные подсказки.

При отсутствии результатов при поиске цитат определенного комика предлагаю поискать во всех цитатах (ссылка "all quotes" ведет сразу не результаты поиска):

Подсказка при отсутствии результатов поиска

А если ничего не нашлось уже во всех цитатах, предлагаю поискать по другим ключам (хотя это больше подсказка по тому, как пользоваться поиском, т. е. вводить ключи, а не предложения):

Подсказки при отсутствии результатов поиска

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

В общем, все вроде хорошо. Но ложка дегтя тоже есть, не без этого.

адалт запросы в поиске

И такого рода запросы встречаются достаточно регулярно. Ну встречаются и встречаются, ок. Но частенько бывает так, что придет какой-то бельгиец, сильно похожий на бота, и за часик введет под сотню адалт запросов. И на следующий день тоже.

А у меня же там АдСенс висит. Блокировки сайта ой как не хочется. Не факт, что это послужило бы причиной, но зачем рисковать. Ну и решил заместо проверки запроса на содержание небезопасной лексики по имеющемуся списку стоп-слов просто отключить показ АдСенса на страницах с результатами поиска, дабы делается это в две строчки:

if (empty($_GET['keys'])) {

echo <<


Код АдСенса, да и все остальное. У меня

 

тут например копится еще и CSS и JS для

нужного отображения блоков, в отдельный

файл пока не выношу, так проще.

ADSENSE;

}

 

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

 

 

Единственное известное применение vimeo для меня - вставлять ссылки на видео, которые запрещены к вставке на ютубе. И по всей видимости vimeo придется пользоваться все чаще и чаще, в свете политики текущего пока еще лидера видеохостингов.

Поиск, конечно, не совершенен и требует кучи доделок, начиная от работы с морфологией и заканчивая авто подсказками на аяксе, но пока пусть будет так. Вернусь к этому, когда буду делать полноценный поиск по всему сайту в общем и по другим разделам в частности. Пока еще не известно, что и как искать придется помимо цитаток, так что текущая реализация вполне себе сойдет. Работает и ладно.

Добавить комментарий

You must have Javascript enabled to use this form.