Comment utiliser PHP et Elasticsearch pour obtenir des résultats de recherche mis en évidence
Introduction :
Dans le monde Internet moderne, les moteurs de recherche sont devenus le principal moyen permettant aux utilisateurs d'obtenir des informations. Afin d’améliorer la lisibilité et l’expérience utilisateur des résultats de recherche, la mise en avant des mots-clés de recherche est devenue une exigence courante. Cet article explique comment utiliser PHP et Elasticsearch pour obtenir des résultats de recherche mis en évidence.
1. Préparation
Avant de commencer, nous devons nous assurer que PHP et Elasticsearch ont été installés et configurés correctement. Vous pouvez utiliser Composer pour gérer les dépendances PHP, puis utiliser la commande suivante pour installer le client PHP d'Elasticsearch :
composer require elasticsearch/elasticsearch
2. Connectez-vous à Elasticsearch
Tout d'abord, nous devons créer une instance client Elasticsearch dans le script PHP. Vous pouvez utiliser le code suivant pour vous connecter à Elasticsearch :
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
3. Créer un index et un mappage
Avant la recherche, nous devons créer un index et spécifier le mappage de champ correspondant afin qu'Elasticsearch puisse traiter correctement la demande de recherche. Voici un exemple de code pour créer un index et un mappage :
$params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'fields' => [ 'keyword' => [ 'type' => 'keyword', ], ], ], 'content' => [ 'type' => 'text', 'fields' => [ 'keyword' => [ 'type' => 'keyword', ], ], ], ], ], ], ]; $response = $client->indices()->create($params);
Quatrièmement, effectuez une recherche et mettez en surbrillance les résultats
Ensuite, nous pouvons commencer à effectuer l'opération de recherche et mettre en évidence les mots-clés correspondants. Voici un exemple de code qui effectue une recherche et met en évidence les résultats :
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => '关键字', ], ], 'highlight' => [ 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass(), ], ], ], ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title'][0]) ? $hit['highlight']['title'][0] : $hit['_source']['title']; $content = isset($hit['highlight']['content'][0]) ? $hit['highlight']['content'][0] : $hit['_source']['content']; echo "标题:{$title} "; echo "内容:{$content} "; }
Le code ci-dessus effectuera une recherche par mot-clé via Elasticsearch et mettra en évidence les champs correspondants. Dans les résultats de recherche, s'il existe un mot-clé correspondant dans un certain champ, le résultat en surbrillance pour ce champ sera renvoyé.
Conclusion :
Cet article explique comment utiliser PHP et Elasticsearch pour obtenir des résultats de recherche mis en évidence. La mise en évidence des résultats de recherche peut être facilement obtenue en configurant une indexation et une cartographie appropriées et en utilisant des paramètres de recherche pertinents. Cela améliorera sans aucun doute la compréhension et la lecture des résultats de recherche par les utilisateurs, améliorant ainsi l'expérience utilisateur.
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!