(499) 348-98-39  Москва(812) 409-93-36  Санкт-Петербург

Как происходит разработка систем поиска по компаниям?

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

Организация поиска по компаниям

В первую очередь, система поиска по компаниям должна ориентироваться на поисковые системы более высокого уровня. Конечно, существуют крупные порталы, реализующие поиск по компаниям, но их популярность очень мала и в большой степени зависит от оптимизации под Google и Yandex.

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

Целевые запросы, по которым приходят посетители на сайт,  в зависимости от типа сильно различаются. Например, в области парфюмерии это, в основном, названия брендов: Шанель. В строительстве больше учитываются сами работы: потолок, пол, крыша.

Нужно собрать подобные запросы по своей направленности и проанализировать их. Однословные запросы создадут каталог первого уровня, от первого уровня следует отталкиваться и составлять подзапросы. Если работа над каталогом идёт "с нуля", то лучше делать каталог двойной вложенности (каталог и подкаталог). Бесконечную вложенность и BSP-разветвления можно будет доделать и потом, когда всё уже начнёт потихоньку крутиться.

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

Теперь, когда каталог создан и компании в него внесены, можно браться за организацию поиска. Тут большинство веб-мастеров поступают согласно одному из двух пунктов:

  • Select * from companies where name='$zapros';
  • Интегрируют API поиска от Google или Yandex.

Поскольку других вариантов нет (на общеизвестных CMS используется пункт 1), придётся исходить от них. Рассмотрим оба способа.

Вариант 1

Все данные, передаваемые в самодельный поиск, должны строго ограничиваться, резаться, а попытки взлома должны караться баном. Потихоньку список неблагонадёжных IP начинает вырастать до десятков мегабайт, поэтому желательно связать свой сайт со специальными серверами чёрных списков.

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

В третьих, применяйте регулярные выражения.

В итоге, всё это может вызвать чудовищную загрузку системы, которую не выдержит и качественный кластер. Спасает многоуровневая система кэширования.

Особенно неудобна будет организация постраничной разбивки выдачи. Для того, чтобы интерпретатору базы не приходилось брать из таблицы все данные, а затем "выкусывать" из них фрагмент для вывода, используйте несколько таблиц, с данными и с индексами.

Плюсы:

  • Полный доступ к выборке из таблицы
  • Мгновенная правка выдачи

Минусы:

  • Большая ресурсоёмкость
  • Нужен срок для бета-тестирования
  • Учёт синтаксиса в русском языке довольно сложен, а наличие филолога в штате веб-мастерской - вопрос на грани фантастики.

Вариант 2

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

Главное - знать, как применять чужой API. Например, Яндекс отдаёт результаты поиска двумя путями: через генерацию iframe посредством Javascript и через XML. В первом случае вы получаете встроенную страницу с результатами Яндекс-поиска, немного стилизованную под ваш сайт. Во втором случае - полноценный массив с данными, который можно расположить по собственному усмотрению на любой странице. Формат XML выдерживает ограниченное число запросов, но для не слишком посещаемых порталов его хватает. Слишком посещаемые порталы могут купить лицензию на неограниченный поиск.

Плюсы:

  • Быстро, доступно, бесплатно
  • Отсутствие нагрузки на свои сервера

Минусы:

  • Поиск мирового уровня
  • Зависимость от поисковой машины
  • Не всегда есть возможность получить выдачу в желаемом виде.

Оба рассмотренных варианта имеют право на жизнь, - всё зависит от пожелания клиента и руководителя отдела разработки.