Проблема: Нужно запускать мой собственный поиск программно с помощью API поиска. Каждый результат Google, который я нахожу, направлен на то, чтобы научить тех, кто не занимается разработкой, использовать модуль с представлениями, но без результатов, как я хочу.
Информация:
- Использование сервиса локальной базы данных вместо Solr или любого другого.
- Не храните данные в базе данных, которые будут отображаться вместе с другими результатами.
- Содержимое будет сгруппировано во вкладках типа.
- Не использует представления по разным причинам.
- Включите Facets API, но не знаете, как его использовать.
Почему: потому что я хочу, чтобы страница поиска находилась в / site-search и без / node / keyword после аргумента страницы. Также будет предложено настроить это за рамками других модулей, которые могут предоставлять такой же тип функциональности. И я хочу узнать, как это сделать, но не нашел никаких руководств или другого понимания того, как это сделать.
Остальное: я создал свою страницу поиска и на ней я выполняю поиск с помощью:
$term = $_SESSION['my-search']['term'];
$server = search_api_server_load('database');
$index = search_api_index_load('default_node_index');
$query = new SearchApiQuery($index);
$query->keys($term);
$query->fields(array('title','body:value'));
$srv= new SearchApiDbService($server);
$result = $srv->search($query);
Переменная сеанса устанавливается при отправке формы поиска, а затем перенаправляет пользователя в / site-search для выполнения поиска и отображения результатов.
Если я выведу $ result, я вижу, что это массив с другой информацией, включая набор результатов, который представляет собой массив идентификаторов узлов и их оценок.
Я мог бы пробежаться по ним, захватить узел и отобразить результаты самостоятельно, но я думаю, что должен быть какой-то другой метод для рендеринга результатов поиска. Я не нашел это, хотя и в этом проблема.
Я просматривал различные классы в Search API и Facet API и не могу найти в них ничего, что могло бы вывести результаты.
Любая помощь с этим будет оценена.
Пример результатов:
Array
(
[result count] => 11
[results] => Array
(
[37] => Array
(
[id] => 37
[score] => 15.7503318786621
)
[39] => Array
(
[id] => 39
[score] => 7
)
[40] => Array
(
[id] => 40
[score] => 5
)
[31] => Array
(
[id] => 31
[score] => 4
)
[33] => Array
(
[id] => 33
[score] => 1
)
[36] => Array
(
[id] => 36
[score] => 1
)
[1] => Array
(
[id] => 1
[score] => 1
)
[15] => Array
(
[id] => 15
[score] => 1
)
[16] => Array
(
[id] => 16
[score] => 1
)
[27] => Array
(
[id] => 27
[score] => 1
)
[35] => Array
(
[id] => 35
[score] => 0.980873763561249
)
)
[warnings] => Array
(
)
[ignored] => Array
(
)
[performance] => Array
(
[complete] => 0.0033111572265625
[preprocessing] => 0.00053095817565918
[execution] => 0.0027379989624023
[postprocessing] => 4.2200088500977E-5
)
)