Problème: besoin d'exécuter mes propres recherches par programme avec l'API de recherche. Chaque résultat google que je trouve est destiné à enseigner aux non-développeurs comment utiliser le module avec Views sans aucun résultat sur le faire comme je le souhaite.
Information:
- Utilisation du service de base de données local au lieu de Solr ou de tout autre.
- Avoir des données non stockées dans la base de données qui apparaîtront aux côtés d'autres résultats.
- Le contenu sera regroupé dans des onglets "type".
- Ne pas utiliser les vues pour diverses raisons.
- Avoir l'API Facets activée mais aucune idée de comment l'utiliser non plus.
Pourquoi: parce que je veux que la page de recherche soit dans / site-search et sans / node / keyword après l'argument de page. Il vous sera également demandé de personnaliser cela au-delà de la portée d'autres modules qui peuvent fournir le même type de fonctionnalité. Et je veux apprendre à le faire, mais je n'ai pas trouvé de tutoriels ou d'autres informations sur la façon de l'accomplir.
Le reste: j'ai créé ma page de recherche et sur celle-ci j'exécute la recherche avec:
$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);
La variable de session est définie lorsqu'un formulaire de recherche est soumis, puis redirige l'utilisateur vers / site-search pour effectuer la recherche et afficher les résultats.
Si je génère $ result, je vois que c'est un tableau avec des informations différentes, y compris un jeu de résultats qui est un tableau d'ID de noeud et leurs scores.
Je pourrais les parcourir, saisir le nœud et afficher les résultats moi-même, mais je pense qu'il doit y avoir une autre méthode pour rendre les résultats de la recherche. Je ne l'ai pas trouvé cependant et c'est le problème.
J'ai parcouru les différentes classes de l'API de recherche et de l'API de facette et je ne trouve rien en elles qui semble générer des résultats.
Toute aide à cet égard sera appréciée.
Exemple de résultats:
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
)
)