Поисковая система

Поисковая система является одной их важнейших составляющих любого интернет-магазина, которая позволяет пользователям быстро производить поиск необходимой им информации. Это очень важно, поскольку плохо организованный поиск информации дает пользователю ещё один серьезный повод для того, чтобы уйти на сайт конкурента, что может привести к существенным проблемам как в самой интернет-деятельности организации, так и в её повседневной работе. Я, например, предпочитаю производить поиск информации, а не просматривать страницы каталога, особенно в том случае, если не уверен в том, что запрашиваемая информация там есть. Очень часто после первой же попытки можно понять, что представляет собой система поиска. Как говорится, попадание в цель от промаха находится на расстоянии лишь в один щелчок. Поэтому давайте детально рассмотрим организацию различных поисковых систем.
Внешний поиск с помощью публичных поисковых систем. Сюда относится поиск с помощью общедоступных поисковых систем, например, Yandex, Rambler, Google, Aport и др. Данные системы производят индексацию и накопление информации, которая располагается на статических страницах, однако нет никакой гарантии того, что проиндексируется весь статичный каталог товаров. Другая проблема заключается в том, что поисковые роботы собирают со страниц много ненужной информации, в результате чего качество поиска оставляет желать лучшего.
Внешний поиск средствами браузера. Браузер позволяет произвести поиск информации по загруженной странице. Однако полагаться на него не стоит, поскольку, с одной стороны, далеко не все пользователи знают о данной возможности, а с другой стороны вывести весь каталог товаров на страницу не представляется возможным. Мне попадались статические страницы с таблицами, содержащими весь раздел каталога - 100-120 записей. Однако я не пользовался окном поиска браузера, поскольку ожидал увидеть окно поиска на самой странице, а его там не было.
Внешний поиск по статическому каталогу. Как правило, статические каталоги состоят из нескольких html-страниц, поэтому пролистывать их и производить поиск средствами браузера - весьма не эффективное занятие. Для поиска в этом случае применяют внешние поисковые системы, которые по качеству поиска не на много превосходят публичные поисковые системы. Особенно "порадовала" меня одна из реализаций данной системы поиска, которая выводила в результаты поиска ссылки на страницы, где в тексте присутствовало название запрашиваемого товара, тогда как я хотел увидеть найденную запись в таблице с ценой, ссылками на фотографию и описание запрашиваемого товара.
В самом простейшем случае внешний поиск можно реализовать с помощью плавающего фрейма и DHTML (с крайне низкой производительностью), а более сложный - c применением PHP.
Внутренний поиск по статическому каталогу. Производится тогда, когда каталог товаров находится в массиве JavaScript. Данный вид поиска можно реализовать на более качественном уровне по сравнению с предыдущими вариантами, поскольку поиск производится по полям записей каталога товаров, а не по всей информации на странице. Более того, можно задавать различные условия поиска, например по наименованию, цене, товарной группе, или их комбинации. Обращаю Ваше внимание на то, что данный вариант поиска позволяет разработать механизм инкрементного поиска (подробнее).
Поиск по базе данных. Наиболее удобный вариант, поскольку позволяет задавать сложные запросы для получения той или иной выборки данных.
Как правило, большинство интернет-магазинов производят поиск товаров с избытком в результатах поиска. Что это значит? Это значит, что в результаты поиска попадают все записи, которые удовлетворяют условиям поиска. Результирующая выборка при этом может состоять из большого количества записей, для ограничения которых используют порционный (постраничный) вывод информации, например по 30 или 50 записей на страницу. Понятно, что просмотр нескольких страниц с результатами осуществляется с большими накладками, как по трафику, так и по времени, поэтому в ряде случаев данный механизм поиска крайне не эффективен. Противоположным по отношению к поиску с избытком является поиск до первого совпадения - поиск без избытка. В этом случае поиск осуществляется до тех пор, пока не будет найдена первая запись, удовлетворяющая условиям поиска, после чего поиск прекращается. Именно так работает поиск в программах 1C, Word, Excel, браузерах, и т.д., а также - инкрементный поиск. В этом случае происходит существенное увеличение скорости поиска наряду со значительным сокращением трафика.
Другая проблема относится к точности поиска. Большинство новых посетителей интернет-магазина не знают, в каком формате находится название товара в базе данных. Поэтому очень часто поиск товаров, которые находятся в каталоге, не приводят к успеху. Для увеличения вероятности нахождения требуемого товара традиционно используют операторы булевой алгебры: and, or и др. В этом случае строка поиска может быть в таком виде:
Микросхема 1533 or Микросхема 155
Здесь возникают две проблемы: первая - посетители в своем большинстве не знают об этой возможности, а если и знают, то пользуются не часто, как, например, я, поскольку необходимо вводить длинные строки. С другой стороны, в базе данных данная позиция может обозначаться так:
Микросхема1533, (без пробела)
или так
Микросхема  1533, (два пробела)
Понятно, что поиск вышеприведённой строки с оператором выбора не увенчается успехом, т.е. точность поиска варьируется от случая к случаю. Данные пример достаточно тривиален, однако он наглядно демонстрирует существующие проблемы при поиске. Можно ли как-то улучшить данную ситуацию. Да, с помощью фрагментации строки поиска.
Фрагментация строки поиска. Фрагментацией называется процесс составления строки поиска из отдельных фрагментов, отделённые друг от друга символом разделителя, которые, как полагает пользователь, должны присутствовать в названии товара. Пример фрагментированной строки поиска может быть таким:
Микросх_1533, где "_" - разделитель двух фрагментов - "Микросх" и "1533"
Функция поиска производит сравнение названий товаров с каждым фрагментом на предмет их вхождения в него. Порядок следования фрагментов и их количество может быть любым, что позволяет пользователю использовать в качестве фрагментов любую часть названия в его начале, середине или конце. Для увеличения точности поиска товара среди множества похожих нужно стараться использовать уникальные для данного товара фрагменты из его названия или увеличить их количество. В последнем случае скорость поиска будет уменьшаться пропорционально количеству фрагментов.
Основное отличие метода фрагментации от выбора варианта заключается в том, что в первом случае необходимо вводить название товара с точностью до фрагментов, а во втором - с точностью до символов, что существенно сложнее для пользователя. Действительно, пусть необходимо заказать микросхему серии 1533 ЛА3, но данное название может присутствовать в каталоге товаров в нескольких вариантах, например: 1533ЛА3, 1533 ЛА3, 1533 ЛА 3, 1533ЛА 3 и т.п. Как же составить строку поиска? Очень просто, если использовать фрагментацию:
1533_ЛА_3
с использованием же оператора выбора (OR) данная строка запишется так:
1533ЛА3 or 1533 ЛА3 or 1533 ЛА 3 or 1533ЛА 3 or …
Как говорится, делайте выводы.
Расширенный поиск. Выше мы рассмотрели поиск по названию товара. Данный поиск хорошо работает в линейных структурах данных. Однако в больших и разветвленных информационных структурах для повышения эффективности поиска информации требуется ограничить область поиска дополнительными условиями. Характерный пример - поиск товара в определённых разделах каталога. Предположим, что нам необходимо найти книгу с определенным названием. Если магазин предлагает кроме книг ещё и видеофильмы, фильмы на CD, DVD и др., то при обычном поиске в результирующую выборку может попасть не только запрашиваемая книга, но и другая продукция, если в её названии присутствует строка поиска. Для того чтобы этого не произошло, можно ограничить поиск только по разделу книг, что увеличивает качество поиска.
Кроме расширенного поиска с фильтром, который был рассмотрен выше, существует ещё и мультипоиск, т.е. одновременный поиск нескольких товаров. Признаюсь честно, данная возможность мне не встречалась в Интернете (как, впрочем, и поиск с фрагментацией строки поиска), несмотря на то, что она позволяет осуществлять поиск информации на качественно новом уровне. Дополнительно к режиму мультипоиска можно подключить функцию добавления найденных записей в заказ, что позволит составлять заказы по заявкам из других программ (Word, Excel и др.) за считанные секунды, путем копирования их и вставки в текстовую область мультипоиска.
Оглавление
Copyright © 2016