Les fonctions de recherche jouent un rôle crucial dans les applications Web modernes. Avec la surtension du volume de données, les utilisateurs ont présenté des exigences plus élevées sur la précision et la pertinence des résultats de recherche. Pour obtenir une expérience de recherche haute performance, les développeurs choisissent généralement d'intégrer un moteur de recherche en texte intégral efficace. La recherche Manticore est une solution open source conçue pour une recherche rapide et précise. Cet article expliquera comment créer une fonction de recherche puissante à l'aide de la recherche PHP et Manticore.
Manticore Search est un projet de branche basé sur Sphinx qui améliore de nombreuses fonctionnalités. Il prend en charge la récupération de texte complet, la correspondance floue, le mécanisme de notation personnalisé, le stockage de format JSON, etc., et convient à divers scénarios tels que les plates-formes de commerce électronique, les systèmes de gestion de contenu et la recherche d'entreprise. En fournissant une interface API riche, la recherche Manticore peut facilement s'intégrer aux applications PHP pour créer des solutions de recherche flexibles et efficaces.
Vous pouvez télécharger la dernière version en visitant le site officiel de la recherche de Manticore et terminer l'installation et la configuration en fonction de la documentation officielle. Une fois l'installation terminée, assurez-vous que le service s'exécute normalement.
La première étape de la création d'une fonction de recherche consiste à créer un index. Les index sont les composants principaux utilisés pour stocker des informations structurées. Voici l'exemple de code PHP pour créer un index:
<?php
$index = new ManticoreSearchIndex($client, 'products');
$index->create([
'product_id' => ['type' => 'integer', 'indexed' => true, 'docvalues' => true],
'name' => ['type' => 'text', 'indexed' => true, 'tokenized' => true],
'price' => ['type' => 'float'],
]);
?>
Le code ci-dessus crée un index appelé "Products", qui contient trois champs: ID de produit, nom et prix. Vous pouvez ajouter plus de champs en fonction de vos besoins commerciaux.
Les documents sont des éléments de données spécifiques dans l'index et chaque document représente un objet de recherche. Le code suivant montre comment ajouter un document produit à l'index:
<?php
$document = new ManticoreSearchDocument($index);
$document->setId(1);
$document->setFields([
'product_id' => 1,
'name' => 'iPhone 11',
'price' => 999.99,
]);
$index->addDocuments([$document]);
?>
Vous pouvez ajouter autant de documents que vous le souhaitez, et les champs de chaque document doivent être cohérents avec la définition d'index.
Après avoir ajouté le document, nous pouvons exécuter la requête de recherche. L'exemple PHP suivant montre un processus de recherche de mots clés simple:
<?php
$search = new ManticoreSearchSearch($client, ['index' => 'products']);
$result = $search->search('iPhone');
foreach ($result['hits'] as $hit) {
echo $hit['product_id'] . ': ' . $hit['name'] . ' - ' . $hit['price'] . "\n";
}
?>
Ce code renverra toutes les informations du produit contenant le mot-clé "iPhone" et les sortira au format. Vous pouvez également étendre les critères de recherche tels que la gamme de prix, la pagination, le tri, etc.
Pour améliorer davantage la qualité de la recherche, la recherche sur Manticore fournit une variété de mécanismes pour optimiser la corrélation des résultats. Une façon consiste à influencer l'algorithme de tri en fixant le poids du champ:
<?php
$index->update([
'base' => 'products',
'expr' => 'rank_expr',
'ranker' => 'expr',
]);
?>
Vous pouvez personnaliser les expressions de classement en fonction de la logique commerciale, telles que la prise de poids du nom du produit plus élevé que les informations de description. De plus, Manticore prend également en charge des fonctions avancées telles que la requête booléenne, la recherche de phrases, la requête de similitude, etc., fournissant des outils flexibles pour créer une logique de recherche complexe.
En combinant la recherche PHP et Manticore, les développeurs peuvent rapidement créer des services de recherche puissants et performants. Cet article décrit des étapes clés telles que la façon d'installer des moteurs de recherche, de créer des index, d'ajouter des documents, d'exécuter des requêtes et d'ajuster la pertinence. Dans les applications réelles, le réglage fin des stratégies de recherche basé sur des scénarios commerciaux spécifiques améliorera considérablement l'expérience de recherche de l'utilisateur.