Поиск Apache Solr показывает только текущий язык пользователя
Я использую интеграцию поиска Apache Solr для поиска на нашем веб-сайте, отлично работает, за исключением того, что я получаю результаты для всех языков на сайте, а не только для того, который пользователь использует в данный момент.
Есть ли способ показать только узлы, которые находятся на текущем языке пользователей? Либо отфильтровать его из результатов с помощью простой проверки, либо непосредственно в запросе?
Я надеялся, что будет возможность изменить результаты до создания пейджера, я получил как для фильтрации другого языка в hook_apachesolr_search_page_alter(), но это слишком поздно, тогда вы получите пейджер на 3 страницы только с одним результатом.
Я также пробовал многоязычный Apache Solr, но на данный момент это не очень хорошо работает для 7.x.
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);
}