Guide d'étude PHP : Comment implémenter la fonction de recherche en texte intégral
La fonction de recherche en texte intégral est largement utilisée dans les sites Web et les applications modernes, ce qui permet aux utilisateurs de rechercher et de récupérer du contenu pertinent par mots-clés. Dans cet article, nous verrons comment implémenter la fonctionnalité de recherche en texte intégral à l'aide de PHP.
1. Préparation
Avant de commencer à écrire du code, nous devons nous assurer qu'Elasticsearch est installé sur le serveur. Elasticsearch est un outil côté serveur open source pour la recherche et l'analyse de texte intégral. Il fournit un moteur de recherche puissant capable de rechercher rapidement de grandes quantités de données.
2. Créer un index
Avant de rechercher, nous devons d'abord créer un index. Les index sont l'endroit où les documents sont stockés dans Elasticsearch. Chaque document est constitué d'un ou plusieurs champs sur la base desquels nous pouvons effectuer une recherche.
Ce qui suit est un exemple de code simple pour l'indexation :
require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create() ->setHosts(['http://localhost:9200']) ->build(); $params = [ 'index' => 'articles', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', ], 'content' => [ 'type' => 'text', ] ] ] ] ]; $response = $client->indices()->create($params);
Dans le code ci-dessus, nous importons d'abord la bibliothèque client Elasticsearch, puis créons une instance client. Ensuite, nous définissons un type d'index contenant les champs de titre et de contenu et l'ajoutons à l'index nommé « articles ».
3. Ajouter des documents
Nous pouvons maintenant ajouter des documents à l'index. Chaque document doit contenir un identifiant unique et doit contenir la valeur du champ à rechercher.
Voici l'exemple de code pour ajouter un document :
$params = [ 'index' => 'articles', 'id' => 1, 'body' => [ 'title' => 'Elasticsearch入门指南', 'content' => 'Elasticsearch是一个强大的搜索引擎。' ] ]; $response = $client->index($params);
Dans l'exemple ci-dessus, nous avons spécifié le nom de l'index, l'ID du document et la valeur du champ à ajouter.
4. Effectuer une recherche en texte intégral
Nous pouvons maintenant commencer à utiliser la fonction de recherche en texte intégral. Voici un exemple de recherche simple :
$params = [ 'index' => 'articles', 'body' => [ 'query' => [ 'match' => [ 'content' => '搜索引擎' ] ] ] ]; $response = $client->search($params);
Dans le code ci-dessus, nous spécifions le nom de l'index que nous souhaitons rechercher et utilisons une requête de correspondance pour trouver les documents contenant le mot-clé « moteur de recherche ».
5. Traiter les résultats de la recherche
Les résultats de la recherche seront renvoyés au format JSON. Nous pouvons utiliser la fonction json_decode en PHP pour le décoder en un tableau ou un objet exploitable, puis le traiter.
Voici un exemple simple de traitement des résultats de recherche :
$results = $response['hits']['hits']; foreach ($results as $result) { $title = $result['_source']['title']; $content = $result['_source']['content']; echo "标题:$title<br>"; echo "内容:$content<br><br>"; }
Dans le code ci-dessus, nous utilisons une boucle foreach pour parcourir les résultats de recherche, puis extrayons le titre et le contenu de chaque résultat et les imprimons.
Grâce aux étapes ci-dessus, nous pouvons facilement implémenter la fonction de recherche en texte intégral en PHP. En indexant, en ajoutant des documents, en effectuant des recherches et en traitant les résultats de recherche, nous offrons à nos utilisateurs une expérience de recherche rapide et efficace. J'espère que cet article sera utile pour apprendre PHP à implémenter la fonction de recherche en texte intégral.
Matériaux de référence :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!