Avec l'augmentation rapide de la quantité d'informations, les exigences des utilisateurs pour la précision des résultats de recherche augmentent constamment. Les moteurs de recherche traditionnels sont difficiles à répondre aux besoins des recherches précises multidimensionnelles, il est donc particulièrement important de créer une fonction de filtrage de recherche flexible et efficace.
La recherche Manticore est un moteur de recherche en texte complet open source et haute performance qui prend en charge la mise à l'échelle rapide et les requêtes complexes. Vous pouvez télécharger et installer la recherche Manticore à partir du canal officiel pour le développement et l'utilisation ultérieurs.
L'indexation est la base de la recherche en texte intégral. L'exemple suivant montre comment créer un index contenant des champs de titre, de contenu et de classification via PHP:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchIndex;
use ManticoresearchExceptionsRuntimeException;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
try {
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$index = new Index($client);
$index->create([
'index' => 'myindex',
'type' => 'mytype',
'fields' => [
'title' => ['type' => 'text'],
'content' => ['type' => 'text'],
'category' => ['type' => 'text']
]
]);
echo "Index created successfully.";
} catch (RuntimeException $e) {
echo $e->getMessage();
}
?>
Le code ci-dessus a créé avec succès un index nommé "MyIndex", qui contient les champs de texte nécessaires, et la structure du champ peut être ajustée en fonction des besoins réels.
Une fois l'index créé, vous pouvez utiliser l'exemple de code suivant pour implémenter la recherche de mots clés en texte complet, en prenant en charge la correspondance dans les champs de titre, de contenu et de classification:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$boolQuery = new BoolQuery();
$query = new Query($client);
$boolQuery->addShould($query->match('title', 'keyword'));
$boolQuery->addShould($query->match('content', 'keyword'));
$boolQuery->addShould($query->match('category', 'keyword'));
$query->bool($boolQuery);
$result = $query->search('myindex', 'mytype');
print_r($result);
?>
Ce code effectue la recherche du mot-clé "mot-clé", couvrant plusieurs champs correspondant pour faciliter la satisfaction des besoins de requête divers.
Sur la base de la recherche en texte intégral, l'ajout de conditions de filtre peut en résulter avec précision. L'exemple suivant montre comment filtrer les résultats de la recherche, tels que le filtrage des catégories spécifiques:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$boolQuery = new BoolQuery();
$query = new Query($client);
$boolQuery->addMust($query->match('title', 'keyword'));
$boolQuery->addFilter($query->term('category', 'news'));
$query->bool($boolQuery);
$result = $query->search('myindex', 'mytype');
print_r($result);
?>
En ajoutant des conditions de filtrage, la plage de recherche peut être effectivement rétrécie et la pertinence et la précision des résultats de recherche peuvent être améliorées.
Cet article présente comment combiner la recherche PHP et Manticore pour implémenter la fonction de filtrage de recherche intelligente. Il couvre les étapes clés telles que la construction de l'environnement, la création d'index, la recherche en texte intégral et le filtrage conditionnel. J'espère que cela inspirera le développement de votre moteur de recherche et vous aidera à créer une expérience de recherche intelligente qui est plus conforme aux besoins des utilisateurs.