Проблема: Потрібно запустити власні пошукові програми програмно за допомогою API пошуку. Кожен результат, який я знаходжу в Google, орієнтований на те, щоб навчити непрограмістів використовувати модуль з представленнями, без результатів робити це так, як я хочу.
Інформація:
- Використання локальної служби баз даних замість Solr або будь-якої іншої.
- Нехай дані не зберігаються в базі даних, які з'являться поряд з іншими результатами.
- Вміст буде згруповано у вкладках "тип".
- Не використовуйте Views з різних причин.
- Увімкнено API Facets, але немає поняття, як ним також користуватися.
Чому: Тому що я хочу, щоб сторінка пошуку знаходилась за адресою / пошук на сайті та без / вузла / ключового слова після аргументу сторінки. Також буде запропоновано налаштувати це за межі інших модулів, які можуть забезпечувати однаковий тип функціональності. І я хочу навчитися це робити, але не знайшов ніяких навчальних посібників чи іншого розуміння того, як це зробити.
Решта: я створив свою пошукову сторінку і на ній я виконую пошук за допомогою:
$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);
Змінна сеансу встановлюється під час подання пошукової форми, а потім перенаправляє користувача на сайт / пошук, щоб здійснити пошук та показати результати.
Якщо я вивожу $ result, я бачу, що це масив з різною інформацією, включаючи набір результатів, який є масивом ідентифікаторів вузлів та їхніх балів.
Я міг би пройти через них, схопивши вузол і сам відобразивши результати, але, думаю, має бути якийсь інший метод для відображення результатів пошуку. Я цього не знайшов, і в цьому проблема.
Я переглядав різні класи в API пошуку 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
)
)