Maison > Article > développement back-end > Comment utiliser php Elasticsearch pour implémenter une requête combinée multi-champs ?
Comment utiliser php Elasticsearch pour implémenter une requête combinée multi-champs ?
Introduction :
Elasticsearch est un moteur de recherche open source distribué basé sur Lucene. Il offre des capacités de recherche en texte intégral rapides et fiables et prend en charge le stockage, la récupération et l'analyse de données à grande échelle. Dans cet article, nous explorerons comment utiliser la bibliothèque php Elasticsearch pour implémenter des requêtes combinées multi-champs afin de mieux répondre aux divers besoins de recherche.
1. Installer et configurer Elasticsearch
Pour utiliser la bibliothèque php Elasticsearch, vous devez d'abord installer et configurer Elasticsearch. Vous pouvez télécharger et installer Elasticsearch sur le site officiel et vous assurer qu'il fonctionne.
2. Installez la bibliothèque php Elasticsearch
Vous pouvez utiliser Composer pour installer la bibliothèque php Elasticsearch. Créez un fichier composer.json dans le répertoire racine du projet et ajoutez le contenu suivant :
{
"require": {
"elasticsearch/elasticsearch": "^7.0"
}
}
Exécutez ensuite la commande suivante dans la ligne de commande pour installer la bibliothèque :
composer install
Trois, connectez-vous à Elasticsearch
Ensuite, créez un client pour vous connecter à Elasticsearch dans le code php. Ajoutez le code suivant au début du fichier :
require 'vendor/autoload.php';
$client = new ElasticsearchClient();
4. Créez un index
Stockez les données à rechercher dans l'index. Supposons ici que nous souhaitions stocker des informations sur le livre. Ajoutez l'extrait suivant dans votre code php :
$params = [
'index' => 'books', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'author' => [ 'type' => 'text' ], 'category' => [ 'type' => 'keyword' ] ] ] ]
];
$response = $client->indices()->create($params);
Cela créera un fichier appelé Index des « livres » et définition de trois champs : « titre », « auteur » et « catégorie ».
5. Ajouter des documents
Ajoutez les documents à rechercher à l'index. Ajoutez l'extrait de code suivant au code php :
$params = [
'index' => 'books', 'id' => '1', 'body' => [ 'title' => 'The Great Gatsby', 'author' => 'F. Scott Fitzgerald', 'category' => 'Fiction' ]
];
$response = $client->index($params);
6. Exécutez une requête combinée multi-champs
Maintenant, nous sont prêts. Il est temps d'effectuer des requêtes combinées multi-champs. Ajoutez l'extrait de code suivant dans le code php :
$params = [
'index' => 'books', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ ['match' => ['title' => 'great']], ['match' => ['author' => 'fitzgerald']] ] ] ] ]
];
$response = $client->search($params);
Dans le code ci-dessus, nous avons utilisé une requête booléenne pour représenter une requête combinée multi-champs. Dans la clause must, nous utilisons deux clauses de correspondance pour faire correspondre respectivement le champ « titre » et le champ « auteur ». Cela signifie que seuls les documents qui satisfont aux deux conditions seront récupérés.
7. Traitement des résultats de recherche
Les résultats de la recherche incluront tous les documents qui répondent aux conditions de requête. Ajoutez l'extrait de code suivant dans le code php pour gérer les résultats de la recherche :
foreach ($response['hits']['hits'] as $hit) {
echo $hit['_source']['title']; echo $hit['_source']['author']; echo $hit['_source']['category']; echo "
";
}
8. Résumé
Dans Dans cet article, nous avons expliqué comment implémenter des requêtes combinées multi-champs à l'aide de la bibliothèque php Elasticsearch. Nous avons discuté des étapes d'installation et de configuration d'Elasticsearch, d'installation de la bibliothèque php Elasticsearch, de connexion à Elasticsearch, de création d'index, d'ajout de documents et d'exécution de plusieurs champs. requêtes combinées en utilisant la bibliothèque php Elasticsearch, nous pouvons facilement manipuler Elasticsearch et répondre à divers besoins de recherche
Présentation de l'exemple de code.PNG
Vous trouverez ci-dessus les étapes détaillées et un exemple de code sur la façon d'utiliser php Elasticsearch pour implémenter des requêtes combinées multi-champs. . J'espère que cela vous sera utile
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!