Search API. Пишем свой запрос

Сегодня мы поговорим о том, как получить результаты поиска с помощью 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();

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

Комментарии (0)