Maison > Article > développement back-end > Comment utiliser Elasticsearch pour implémenter des fonctions de recherche dans le développement PHP
Avec le développement d'Internet, l'importance des moteurs de recherche a attiré de plus en plus d'attention. Les moteurs de recherche doivent non seulement être capables de rechercher rapidement du contenu pertinent, mais également être efficaces, stables et évolutifs. En tant que moteur de recherche distribué populaire, Elasticsearch est devenu le premier choix de nombreuses entreprises dans le domaine de la recherche. Cet article explique comment utiliser le développement PHP et le combiner avec Elasticsearch pour implémenter des fonctions de recherche.
Avant de commencer, nous devons d'abord installer Elasticsearch. Elasticsearch est une application Java, nous devons donc d'abord installer Java et télécharger le fichier compressé d'Elasticsearch. Ensuite, décompressez le fichier dans le répertoire spécifié.
La création d'un index est la première étape du stockage des documents que nous souhaitons rechercher dans Elasticsearch. Normalement, nous pouvons considérer un index comme une table dans une base de données, constituée d’un ensemble de documents (lignes de données).
En PHP, nous pouvons utiliser le client Elasticsearch-PHP pour interagir avec Elasticsearch. Vous devez d'abord installer le package Elasticsearch-PHP :
composer require elasticsearch/elasticsearch
Ce qui suit est un exemple de code pour créer un index :
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0, ], 'mappings' => [ 'my_type' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'content' => [ 'type' => 'text' ], 'post_date' => [ 'type' => 'date', 'format' => 'yyyy-MM-dd HH:mm:ss' ] ] ] ] ] ]; $response = $client->indices()->create($params);#🎜 🎜#Dans le code ci-dessus, nous créons un index nommé "my_index" et définissons un type nommé "my_type". Nous avons défini trois champs sous le type "my_type" : titre, contenu et post_date.
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => '1', 'body' => [ 'title' => 'PHP开发实战', 'content' => '本文介绍如何在PHP中使用Elasticsearch实现搜索功能。', 'post_date' => date('Y-m-d H:i:s') ] ]; $response = $client->index($params);
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ [ 'match' => [ 'title' => 'PHP' ] ], [ 'range' => [ 'post_date' => [ 'gte' => '2021-01-01 00:00:00', 'lte' => '2021-01-31 23:59:59' ] ] ] ] ] ] ] ]; $response = $client->search($params);
$hits = $response['hits']['hits']; foreach ($hits as $hit) { echo $hit['_source']['title'] . " "; echo $hit['_source']['content'] . " "; echo $hit['_source']['post_date'] . " "; }
Summary
Cet article explique comment utiliser PHP combiné avec Elasticsearch pour implémenter des fonctions de recherche. En étudiant cet article, vous pourrez en apprendre davantage sur les opérations de base telles que la création d'index, l'ajout de documents, la recherche de données et le traitement des résultats. Bien entendu, Elasticsearch dispose également de nombreuses techniques d'utilisation, telles que la requête d'agrégation, la mise en évidence, le tri, etc. Ces techniques peuvent nous aider à mieux utiliser Elasticsearch pour implémenter les fonctions 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!