Comment réaliser une recherche en temps quasi réel à l'aide de PHP et Elasticsearch
La fonctionnalité de recherche est une partie importante des applications Web modernes. Lorsqu’il s’agit de grandes quantités de données et de recherches simultanées par plusieurs utilisateurs, les méthodes traditionnelles d’interrogation des bases de données ne peuvent plus répondre aux besoins. Elasticsearch est un moteur de recherche et d'analyse distribué open source qui peut traiter rapidement des données à grande échelle et offrir des performances et une disponibilité élevées. Cet article explique comment utiliser PHP et Elasticsearch pour implémenter une fonctionnalité de recherche en temps quasi réel.
Tout d'abord, vous devez installer Elasticsearch sur le serveur. Vous pouvez télécharger la dernière version du package d'installation sur le site officiel (https://www.elastic.co/downloads/elasticsearch) et l'installer et le configurer conformément à la documentation officielle.
Ensuite, vous devez installer la bibliothèque client Elasticsearch pour PHP. Vous pouvez utiliser Composer pour installer, exécutez la commande suivante :
composer require elasticsearch/elasticsearch
Dans le code PHP, vous devez d'abord créer une instance du client Elasticsearch et vous connecter au serveur Elasticsearch. Voici un exemple simple :
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
Avant d'effectuer une recherche, vous devez d'abord créer un index et un mappage. Les index sont un concept logique pour stocker des données dans Elasticsearch, similaire aux tables des bases de données traditionnelles.
Ce qui suit est un exemple de création d'index et de mappage :
$params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', ], 'content' => [ 'type' => 'text', ], ], ], ], ]; $response = $client->indices()->create($params);
Dans le code ci-dessus, un index nommémy_index
est créé, ettitle
etcontent sont créés. Le champ
définit le mappage. Différents champs et types de mappage peuvent être définis en fonction des besoins réels.my_index
的索引,并为title
和content
字段定义了映射。可以根据实际需求定义不同的字段和映射类型。
在进行搜索之前,需要将数据添加到索引中。下面是一个示例:
$params = [ 'index' => 'my_index', 'body' => [ 'title' => 'example title', 'content' => 'example content', ], ]; $response = $client->index($params);
以上代码中,将一个包含title
和content
字段的文档添加到索引my_index
中。可以根据实际需求添加更多的字段和内容。
最后,可以创建一个搜索查询来执行实际的搜索操作。下面是一个简单的搜索查询示例:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'example', ], ], ], ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . " "; }
以上代码中,执行了一个根据title
字段进行匹配的搜索查询,并输出了搜索结果中的title
title
et
content
est ajouté à l'index
my_index
. Plus de champs et de contenu peuvent être ajoutés en fonction des besoins réels.
title
et le
title
dans les résultats de la recherche est affiché. . champ. En résumé, en utilisant PHP et Elasticsearch, nous pouvons facilement implémenter une fonctionnalité de recherche en temps quasi réel. Nous avons parcouru l'ensemble du processus, depuis l'installation et la configuration d'Elasticsearch jusqu'à la connexion à Elasticsearch, la création d'index et de mappages, l'ajout de documents et l'exécution d'opérations de recherche. J'espère que cet article sera utile pour implémenter des fonctionnalités de recherche en temps quasi réel à l'aide de PHP et Elasticsearch.
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!