Technologie d'affichage et de personnalisation des résultats de recherche basée sur Elasticsearch en PHP
Introduction :
À l'ère d'Internet moderne, les fonctions de recherche font partie intégrante des sites Web et des applications. Comment afficher rapidement et avec précision les résultats souhaités par les utilisateurs via les moteurs de recherche a toujours été un défi auquel sont confrontés les développeurs. Elasticsearch est un moteur de recherche en texte intégral distribué open source qui est très populaire parmi les développeurs pour ses performances élevées et ses puissantes capacités de recherche et d'analyse. Cet article présentera la technologie d'affichage et de personnalisation des résultats de recherche basée sur Elasticsearch en PHP, et fournira des exemples de code spécifiques.
1. Installation et configuration d'Elasticsearch
Tout d'abord, nous devons installer et démarrer Elasticsearch. Vous pouvez télécharger la dernière version stable sur le site officiel d'Elasticsearch (https://www.elastic.co/), l'installer et la configurer conformément à la documentation officielle.
2. Bibliothèque client PHP Elasticsearch
En PHP, nous pouvons utiliser la bibliothèque client Elasticsearch officiellement fournie pour interagir avec Elasticsearch. Vous pouvez utiliser Composer pour installer :
composer require elasticsearch/elasticsearch
Une fois l'installation terminée, vous pouvez introduire la bibliothèque client Elasticsearch dans le projet :
require 'vendor/autoload.php'; use ElasticsearchClientBuilder;
3. Créer un index et des documents
Avant de lancer la recherche, nous devons créer un index et ajoutez quelques documents au milieu Elasticsearch. Voici un exemple de code PHP :
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0 ], 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'content' => [ 'type' => 'text' ] ] ] ] ]; $response = $client->indices()->create($params); $params = [ 'index' => 'my_index', 'body' => [ [ 'index' => [ '_index' => 'my_index', '_id' => '1' ] ], [ 'title' => 'PHP Elasticsearch 搜索实战', 'content' => '在 PHP 中使用 Elasticsearch 进行高效的搜索技术实战。' ], [ 'index' => [ '_index' => 'my_index', '_id' => '2' ] ], [ 'title' => 'Elasticsearch 基础教程', 'content' => '学习使用 Elasticsearch 基础教程,从入门到精通。' ], ] ]; $response = $client->bulk($params);
IV. Recherche et affichage
Ensuite, nous montrerons comment utiliser Elasticsearch en PHP pour rechercher et afficher les résultats à l'utilisateur. Voici un exemple de code PHP :
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . '<br>'; echo $hit['_source']['content'] . '<br><br>'; }
Le code ci-dessus recherchera les documents indexés dans my_index
qui contiennent Elasticsearch
dans le titre et imprimera les résultats. my_index
中标题中包含 Elasticsearch
的文档,并将结果打印出来。
五、搜索结果定制化
除了简单的搜索和展示,我们还可以对搜索结果进行定制化处理。以下是一个定制化处理搜索结果的示例代码:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ], 'highlight' => [ 'pre_tags' => '<strong>', 'post_tags' => '</strong>', 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass() ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title']) ? implode(' ', $hit['highlight']['title']) : $hit['_source']['title']; $content = isset($hit['highlight']['content']) ? implode(' ', $hit['highlight']['content']) : $hit['_source']['content']; echo $title . '<br>'; echo $content . '<br><br>'; }
以上代码将引入高亮的功能,将搜索到的结果中匹配的关键词用 <strong>
En plus d'une recherche et d'un affichage simples, nous pouvons également personnaliser les résultats de recherche. Voici un exemple de code pour un traitement personnalisé des résultats de recherche :
<strong>
. 🎜🎜Conclusion : 🎜En utilisant Elasticsearch et la bibliothèque client PHP, nous pouvons rapidement implémenter des fonctions de recherche en PHP et personnaliser les résultats de recherche. J'espère que le contenu de cet article vous sera utile pour utiliser Elasticsearch en PHP pour afficher et personnaliser les résultats de recherche. 🎜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!