X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Многоступенчатый поиск по сайту своими руками, Попытка повысить эффективность поиска
Ultrastalker
Ultrastalker
Topic Starter сообщение 17.2.2016, 16:58; Ответить: Ultrastalker
Сообщение #1


Небольшой собственный материал о способе, выбранном для повышения эффективности поиска на сайте «АвтоПандора».

Главная проблема на вышеупомянутом сайте заключается в том, что в каталоге присутствует более 200 тысяч наименований запчастей (на данный момент — около 240 тысяч, но судя по некоторым косвенным симптомам, это ещё цветочки), плюс куча тематических разделов, и разобраться в этой каше каким-то одним стандартным средством поиска (а тем более представить эту кашу в удобоваримом виде посетителю), мягко говоря, не слишком просто.

Какие стандартные средства имеются в виду?

Ну, во-первых, это предоставляемый Яндексом поиск по сайту. Недостатки — в результатах поисковой выдачи отсутствуют ссылки на страницы, не проиндексированные Яндексом. А индексирует он страницы долго, а то и вовсе не, исходя из своих секретных алгоритмов, тогда как ассортимент меняется каждый день: пришёл покупатель, продали ему лямбда-зонд — всё, ассортимент изменился. Яндекс узнает об этом позже, в лучшем случае — через месяц, когда ассортимент поменяется ещё сотни или тысячи раз. Кроме того, Яндекс не позволяет впихнуть в поисковую выдачу, скажем, ссылку на корзину (чтобы можно было сразу кинуть в корзину найденную запчасть). А хотелось бы.

Во-вторых, это собственный программный механизм поиска на PHP. Находит всё что угодно, при условии точного соответствия поискового запроса данным в базе. Позволяет оформить интерфейс поисковой выдачи по своему желанию, в том числе с кнопками добавления в корзину. Недостатки — не понимает синонимов (если не научить, конечно, но объём синонимов, сравнимый с накопленным Яндексом, увы, дело практически недостижимое), терпеть не может грамматических и орфографических ошибок, транслитерации и неверно переключенной раскладки клавиатуры. Правда, может обнаруживать сходство между некоторыми словами (к примеру, «абсорбер» и «адсорбер»), но для детекции ошибок этого умения даже при тонкой настройке либо недостаточно, либо чересчур — начинает обнаруживать сходство между словами «Ливерпуль» и «Манчестер».

Немного поразмыслив, разработчик (он же — автор данного поста) пришёл к выводу о необходимости создания многоступенчатого гибридного поиска, своего рода поэтапной фильтрации поисковых запросов посетителей сайта. Через некоторое время были выработаны три основных постулата гибридного поиска, которые приведены ниже:
1. Посетитель ничего не должен знать о многоступенчатости поиска — он должен сразу получать поисковую выдачу.
2. Посетителя категорически нельзя загружать сложными формами поиска с кнопками типа «и/или», «только в разделе/везде» — весь внешний инструментарий должен представлять собой поисковую строку и кнопку «Найти».
3. В зависимости от разных поисковых запросов поисковая выдача должна быть сформирована разными программными средствами.

Для начала посетители сайта, пользующиеся поиском по сайту (а соответственно — и поисковые запросы), были условно разделены на три категории, приведённые ниже.

1-я категория. Те, кто ищет определённые разделы сайта (например, «запчасти», «контакты» или «автосервис»). Их поисковые запросы, как видно из примеров, сравнительно короткие, общераспространённые и легко предсказуемые, а также соответствующие каждый одному конкретному разделу сайта. К этой же категории можно отнести «лентяев», вводящих простые поисковые запросы из некоего ленивого, случайного любопытства («ну-ка, что у них там за запчасти?»), а то и злорадства («щас посмотрим, как ваш поиск это проглотит!»). К слову говоря: как это ни смешно, но мне доводилось неоднократно встречать интернет-магазины запчастей, встроенный поиск которых (при наличии у них весьма серьёзного ассортимента) бодро рапортовал об отсутствии результатов по слову «запчасти».

2-я категория. Посетители с опытом поиска по сайту — то есть те, кто чаще всего вводит точные поисковые запросы, отчётливо понимая, что они хотят найти — как правило, поисковый запрос представляет собой часть наименования запчасти («патрубок cruze») или оригинальный номер производителя.

3-я категория. Посетители, набирающие поисковые запросы в неверной раскладке клавиатуры, с грамматическими или орфографическими ошибками, с использованием малораспространённых синонимов или наоборот, с жаргонизмами («дворник на лобовуху крузак»). Эту категорию можно по отношению к двум предыдущим категориям условно назвать «все остальные».

В результате механизм поиска приобрёл следующую логику. Привожу по шагам.
Шаг 1-й и главный. Посетитель сайта отправляет запрос, этот запрос обезвреживается (от всевозможных ахрефов, джаваскриптов, инклюдов и прочего мусора) и передаётся на анализ поисковому механизму.

Шаг 2-й. Первым делом поисковый механизм анализирует поисковый запрос посетителя на содержание так называемых «подставных» запросов. «Подставной» запрос, как ясно из его названия — это заранее заданный запрос, который выводится в выпадающей из поисковой строки подсказке и представляет собой простое слово или словосочетание, к примеру, «контакты» или «запчасти».
Прикрепленный файл  img01.jpg ( 74,28 килобайт ) Кол-во скачиваний: 6

Если поисковый запрос точно соответствует «подставному», то вместо результатов поиска посетитель просто автоматически редиректится (переадресуется) в соответствующий раздел сайта при помощи отправки заголовка с адресом (HEADER). Этот подход представляется разработчику более уместным, нежели вывод в ответ на поисковый запрос «запчасти» фразы «да, они у нас есть, и их у нас много». Таким макаром на данном шаге отсеивается (точнее, обслуживается поисковым механизмом) 1-я категория посетителей.

Шаг 3-й. Обслуживание 2-й категории посетителей. Ну здесь всё сравнительно просто: запрос в MySQL с опцией LIKE и запросом данных из соответствующих полей таблиц, создание списка найденных запчастей, вывод на странице поисковой выдачи. C прерыванием поиска, если он успешен (то есть если найден хотя бы один результат). На данном шаге отсеивается (обслуживается) 2-я категория посетителей.

Шаг 4-й, финальный. Обслуживание 3-й категории посетителей, тех, которые «все остальные». Критерии: на 2-м шаге редиректа в другой раздел не произошло, 3-й шаг отрапортовал о нулевом количестве найденных результатов (благо механизм запросов в MySQL позволяет). Остаётся последняя инстанция — Яндекс. Пусть разбирается с синонимами, жаргоном и ошибками. Здесь также всё сравнительно несложно: редиректим пользователя на страницу поисковой выдачи Яндекса отправкой HEADER с указанием в адресной строке поискового запроса (благо Яндекс послушно принимает такие GET-запросы от любого web-сценария, а не только от собственной поисковой строки с водяным знаком, лишь бы поиск был предварительно настроен в инструментарии). Выглядеть такая строка будет приблизительно так:
https://yandex.ru/sitesearch?searchid=20229...%ED%E4%EE%F0%E0
(обратите внимание на параметр searchid в адресной строке — он обозначает идентификатор поиска, параметр же text — это собственно поисковый запрос).

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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Счастье для всех, даром, и пусть никто не уйдёт обиженным!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
15 Tia2 2364 17.4.2024, 0:54
автор: diviner99
Открытая тема (нет новых ответов) Оплатим зарубежные сервисы своими visa mc
0 gregory037 1295 22.7.2023, 21:56
автор: gregory037
Открытая тема (нет новых ответов) Аукцион 5 трастовых сайтов. Продам сайты с ИКС, возраст более 4-х лет, с небольшим доходом, Аукцион на 5 сайтов раздельный по каждому сайту
Аукцион на 5 сайтов раздельный по каждому сайту
0 rumiso 1033 18.9.2022, 18:39
автор: rumiso
Открытая тема (нет новых ответов) Продам генератор постов для соц. сетей, работающий на контенте со сторонних сайтов, со встроенными своими рекламными блоками под выведение нужной рекламы
0 Tutich 2508 19.8.2021, 9:47
автор: Tutich
Открытая тема (нет новых ответов) Smmsearch.net - поиск самой дешевой накрутки в социальных сетях.
0 Professor7717 3294 13.8.2021, 19:53
автор: Professor7717


 



RSS Текстовая версия Сейчас: 23.4.2024, 14:28
Дизайн