Улучшаем поиск на Drupal

Для начала стоит сказать, чем плох поиск Drupal из коробки:

  1. В первую очередь отсутствует поиск по частям слов. Например, найти «mySQL» по запросу «SQL» — будет невозможно.
  2. Плохо дружит с русским языком. Тут ситуация схожая с п.1
  3. Медлителен на больших сайтах

Решение, конечно, есть — установка модуля Search API для Drupal, а уже на его базе соорудить необходимую поисковую систему.

Что же нам потребуется для решения указанных выше проблемных пунктов?

  1. Модуль Fuzzy Search или Search API Solr
  2. Модуль Russian stemming
  3. модуль Apache Solr на сервер

Теперь, какие плюсы и минусы имеют место быть:

Fuzzy Search работает с базой данных, поэтому по скорости он примерно схож со встроенным в ядро, что не очень хорошо для больших сайтов. Fuzzy Search из коробки поддерживает поиск по частям слова (собственно он так и называется — fuzzy search). Из минусов: модуль немного глючен, у меня вываливался с ошибкой при попытке поиска слов длиной меньше 3 букв. Пришлось харкордно ограничить поисковую строку :-)

Apache Solr — серверное решение, требует наличия VPS или железного сервера с Linux. Плюсы: скорость работы, тот же fuzzy search в комплекте. Минусы: не будет работать на виртуальном хостинге, требует затрат на выделенный сервер, требует времени и сил на установку и настройку. Является отдельным механизмом, поэтому нужно следить, чтобы не заглючил :-)

Russian stemming интегрируется как с Fuzzy Search, так и с Apache Solr. Собственно говоря, Russian stemming — это часть Search API, поэтому ему без разницы с кем работать.

Думаю, что справиться с установкой Search API и Fuzzy Search вам не составит труда и без описания, а вот установку Apache Solr Search на Drupal мы пожалуй рассмотрим.

Теги: