Есть ли у Drupal решение AJAX для результатов поиска, желательно с интеграцией Apachesolr?


9

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


То, что вы описываете, это не живой поиск, а автоматическое заполнение поисковых запросов.
Беркес

Поиск автозаполнения уже является существующим решением, которое я описал как то, что предоставляет Apachesolr_autocomplete. Я ищу то, что обеспечивает 5 лучших результатов поиска для текущей поисковой фразы в раскрывающемся меню Ajax.
ДанХ

Ответы:


6

В зависимости от ваших потребностей, есть несколько решений. Вероятно, самая близкая вещь к функции Live Search от Apple - это модуль Finder . Однако в настоящее время он не интегрируется с Apache Solr.

Я бы также следил за модулем Inline Ajax Search, так как интеграция Solr включена в план. Может потребоваться некоторый вклад для продвижения интеграции.

Третье решение - это модуль Apache Solr AJAX . Возможно, он не совсем соответствует тому, что вы пытаетесь сделать, однако он позволяет встроенное обновление страницы при вводе запросов и включенных фильтрах.


2

Acquia предлагает решение, основанное на Solr. http://network.acquia.com/services/acquia-search


Хммм, это выглядит круто, но проект, над которым я работаю, сильно зависит от Pressflow, так что я предполагаю, что что-то созданное acquia не будет совместимым?
ДанХ

Pressflow - это просто дистрибутив Drupal (профиль), что означает, что он просто добавляет модули, темы, типы контента и представления в комплекте. База по-прежнему Drupal. Solr все равно должен работать нормально.
MikeNGarrett

О, хорошо, я попробую спасибо. Я подумал, что Acquia предоставил некоторые базовые модули, требующие регистрации и оплаты, и предположил, что они могут быть заблокированы Acquia. Я думаю, я должен быть более предприимчивым :)
DanH

Я работаю в Acquia и хочу повторить, что Acquia не создает модули с секретными функциями, за которые вы должны платить. Значение Acquia Search - это полностью управляемый масштабируемый экземпляр Solr корпоративного уровня, но никаких дополнительных функциональных возможностей, кроме того, что обеспечивает модуль Apache Solr Search Integration, нет. Кроме того, любой модуль, который работает с Apache Solr Search Integration, будет работать с Acquia Search.
Крис Плиакас

2

Я бы предложил установить модуль http://drupal.org/project/apachesolr_autocomplete , это из коробки позволит вам увидеть предложения ключевых слов Solr.

Следующая проблема - показывать узлы в результатах поиска, а не термины поиска. Существует вызываемая ловушка, apachesolr_modify_query($query,'apachesolr_autocomplete');которая позволит вам написать собственный модуль для перехвата запроса по мере его поступления в Solr и сообщать ему о поиске узлов, а не о предложениях поиска.

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

Уже доступно две функции тем:

  • theme_apachesolr_autocomplete_highlight
  • theme_apachesolr_autocomplete_spellcheck

Надеюсь это поможет.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.