Поиск Apache Solr показывает только текущий язык пользователя


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

Есть ли способ показать только узлы, которые находятся на текущем языке пользователей? Либо отфильтровать его из результатов с помощью простой проверки, либо непосредственно в запросе?

Я надеялся, что будет возможность изменить результаты до создания пейджера, я получил как для фильтрации другого языка в hook_apachesolr_search_page_alter(), но это слишком поздно, тогда вы получите пейджер на 3 страницы только с одним результатом.

Я также пробовал многоязычный Apache Solr, но на данный момент это не очень хорошо работает для 7.x.

Author: dazz, 2012-05-16

1 answers

Один из способов сделать это - реализовать функцию hook_apachesolr_query_alter() для автоматической фильтрации по текущему языку. В пользовательском модуле под названием "mymodule" фрагмент кода будет выглядеть примерно так:

/**
 * Implement hook_apachesolr_query_alter()
 */
function mymodule_apachesolr_query_alter($query) {
  global $language;
  $query->addFilter("ss_language", $language->language);
}
 8
Author: Chris Pliakas, 2012-06-14 14:36:57