Comment utiliser php Elasticsearch pour implémenter une requête combinée multi-champs ?

WBOY
Libérer: 2023-09-13 14:08:02
original
1028 Les gens l'ont consulté

如何使用php Elasticsearch实现多字段组合查询?

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"
Copier après la connexion

}
}
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'
            ]
        ]
    ]
]
Copier après la connexion

];

$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'
]
Copier après la connexion

];

$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']]
            ]
        ]
    ]
]
Copier après la connexion

];

$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 "
Copier après la connexion

";
}

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!