Maison > Article > développement back-end > Comment implémenter des fonctions de recherche associées via PHP et Elasticsearch
Comment implémenter des fonctions de recherche associées via PHP et Elasticsearch
Présentation :
Dans les applications Web modernes, les fonctions de recherche sont une partie très importante. Par rapport à la recherche en texte intégral dans les bases de données traditionnelles, Elasticsearch, en tant que puissant moteur de recherche open source, offre des capacités de recherche plus flexibles et plus efficaces. Cet article vous expliquera comment utiliser PHP et Elasticsearch pour implémenter les fonctions de recherche associées.
Configuration de l'environnement
Avant de commencer, nous devons nous assurer que PHP et Elasticsearch ont été correctement installés. Il peut être téléchargé et installé via le site officiel de PHP et le site officiel d'Elasticsearch. De plus, vous devez également installer la bibliothèque client PHP d'Elasticsearch - Elasticsearch-PHP. Il peut être installé via Composer et exécuter la commande suivante :
composer require elasticsearch/elasticsearch
Créer un index
Avant d'utiliser Elasticsearch pour effectuer une recherche, vous devez d'abord créer un index. L'index est l'unité de base pour stocker et organiser les données. Les index peuvent être facilement créés et gérés via l'API fournie par Elasticsearch-PHP. Voici un exemple de code qui crée un index et définit le mappage de champs :
require_once 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'analyzer' => 'standard' ], 'content' => [ 'type' => 'text', 'analyzer' => 'standard' ], ] ] ] ]; $response = $client->indices()->create($params);
Écriture de données
Une fois la création de l'index terminée, nous devons écrire les données dans Elasticsearch pour les recherches ultérieures. L'écriture des données peut être réalisée via de simples requêtes HTTP. Voici un exemple de code qui écrit un article dans l'index Elasticsearch :
$params = [ 'index' => 'my_index', 'id' => 1, 'body' => [ 'title' => 'Elasticsearch相关搜索', 'content' => 'Elasticsearch是一种强大的搜索引擎,可以实现高效的相关搜索功能。', ] ]; $response = $client->index($params);
Effectuer une recherche
Une fois les données écrites, nous pouvons effectuer l'opération de recherche. Elasticsearch fournit une API riche pour différents types de recherches et prend en charge diverses méthodes de requête, notamment les requêtes de correspondance, les requêtes d'expression, les requêtes par plage, etc. Voici un exemple de code pour effectuer une recherche associée :
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => '搜索引擎', ] ] ] ]; $response = $client->search($params);
Obtenir les résultats de la recherche
Après avoir effectué l'opération de recherche, nous pouvons obtenir les résultats de la recherche via $response. Les résultats de la recherche sont renvoyés au format JSON, qui contient une liste de documents correspondants et des informations de partition associées. Voici un exemple de code qui parcourt les résultats de recherche et les affiche :
foreach ($response['hits']['hits'] as $hit) { echo 'ID: ' . $hit['_id'] . ', Score: ' . $hit['_score'] . ', Title: ' . $hit['_source']['title'] . PHP_EOL; }
Résumé :
Grâce à l'introduction de cet article, nous avons appris à utiliser PHP et Elasticsearch pour implémenter les fonctions de recherche associées. Tout d’abord, nous devons installer et configurer les environnements PHP et Elasticsearch, puis créer des index et écrire des données. Enfin, utilisez l'API fournie par Elasticsearch-PHP pour effectuer des recherches pertinentes et obtenir des résultats de recherche. Je pense que grâce aux conseils de cet article, tout le monde possède déjà les connaissances de base nécessaires pour développer des fonctions de recherche associées. Dans le développement réel, les paramètres de requête de recherche et les méthodes d'affichage des résultats peuvent être encore optimisés en fonction des besoins pour offrir une meilleure expérience 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!