Сегодня мы поговорим о том, как получить результаты поиска с помощью Search API. Я предполагаю, что у вас уже настроен сервер и индекс и поэтому на этих вещах я не буду останавливаться.
// Число 10 это количество элементов на страницу.
$offset = pager_find_page() * 10;
// Какая то строка для поиска.
$keywords = 'some string';
$options = array(
'search id' => 'module_name',
'parse mode' => 'terms',
);
$query = search_api_query('node_index', $options)
->keys($keywords)
->range($offset, 10);
// Для поиска по каким то конкретным филдам, необходимо воспользоваться методом $query::fields.
// Если метод не вызывается, то поиск производится по всем полнотекстовым полям.
// Добавляем фильтр по языку.
global $language;
$query->condition('search_api_language', $language->language);
// Если необходимо использовать несколько языков в качестве фильтра, необходимо использовать следующий код.
$filter = $query->createFilter('OR');
$filter->condition('search_api_language', $language->language);
$filter->condition('search_api_language', LANGUAGE_NONE);
$query->filter($filter);
$result = $query->execute();
На этом все, запрос готов. В следующий раз мы поговорим о том, как можно обработать этот запрос.