Maison > développement back-end > tutoriel php > Comment créer un moteur de recherche performant en utilisant php Elasticsearch ?

Comment créer un moteur de recherche performant en utilisant php Elasticsearch ?

WBOY
Libérer: 2023-09-13 08:24:01
original
1062 Les gens l'ont consulté

如何使用php Elasticsearch构建高性能的搜索引擎?

Comment créer un moteur de recherche performant avec php Elasticsearch ?

À mesure que la quantité de données continue de croître, la création d'un moteur de recherche performant devient de plus en plus importante. Elasticsearch est un moteur de recherche et d'analyse open source puissant mais facile à utiliser et l'un des outils privilégiés pour créer des moteurs de recherche hautes performances. Cet article expliquera comment utiliser la bibliothèque php Elasticsearch pour créer un moteur de recherche hautes performances et donnera des exemples de code détaillés.

  1. Installer Elasticsearch

Tout d'abord, nous devons installer le serveur Elasticsearch. Vous pouvez télécharger et installer la version adaptée à votre système d'exploitation à partir du site officiel d'Elasticsearch. Une fois l'installation terminée, démarrez le serveur Elasticsearch.

  1. Installer la bibliothèque php Elasticsearch

Ensuite, nous devons installer la bibliothèque php Elasticsearch dans notre projet PHP. Composer peut être utilisé pour gérer les dépendances PHP. Créez un fichier composer.json dans le répertoire racine de votre projet et ajoutez-y le code suivant :

{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}
Copier après la connexion

Exécutez ensuite la commande composer install pour installer la bibliothèque php Elasticsearch.

  1. Connectez-vous au serveur Elasticsearch

Une fois que nous avons installé la bibliothèque php Elasticsearch, nous pouvons nous connecter au serveur Elasticsearch. Dans votre fichier PHP, utilisez le code suivant pour créer une instance client Elasticsearch :

<?php

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()->build();
Copier après la connexion
  1. Création d'index

Les indices sont les structures logiques utilisées dans Elasticsearch pour stocker et organiser les données. Nous devons créer un nouvel index dans Elasticsearch pour stocker nos données. Utilisez le code suivant pour créer un index nommé "my_index":

$params = [
    'index' => 'my_index'
];

$response = $client->indices()->create($params);
Copier après la connexion
  1. Ajout de documents

Une fois l'index créé, nous pouvons commencer à ajouter des documents à l'index. Un document est la plus petite unité de stockage dans Elasticsearch. Ajoutez un nouveau document en utilisant le code suivant :

$params = [
    'index' => 'my_index',
    'body' => [
        'title' => 'Example Document',
        'content' => 'This is an example document',
        'tags' => ['example', 'document']
    ]
];

$response = $client->index($params);
Copier après la connexion
  1. Recherche

Maintenant que nous avons ajouté le document à l'index, nous pouvons commencer la recherche. Utilisez le code suivant pour effectuer une requête de recherche simple :

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'example'
            ]
        ]
    ]
];

$response = $client->search($params);
Copier après la connexion

Cela renverra les documents qui correspondent aux critères de recherche.

  1. Ajouter plus de fonctionnalités

En plus des fonctions de recherche de base, Elasticsearch prend également en charge des fonctions de recherche plus avancées, telles que l'agrégation, les filtres et le tri. Voici un exemple de code :

  • Exécutez une requête agrégée :
$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'by_tag' => [
                'terms' => [
                    'field' => 'tags'
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
Copier après la connexion

Cela renverra des résultats agrégés regroupés par balises.

  • Ajouter un filtre :
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    'match' => ['content' => 'example']
                ],
                'filter' => [
                    'range' => [
                        'date' => [
                            'gte' => '2021-01-01'
                        ]
                    ]
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
Copier après la connexion

Cela renverra les documents qui répondent aux critères de recherche et dont la date est supérieure ou égale au 1er janvier 2021.

  • Ajouter un tri :
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => ['content' => 'example']
        ],
        'sort' => [
            'date' => 'desc'
        ]
    ]
];

$response = $client->search($params);
Copier après la connexion

Cela renverra les documents triés par date dans l'ordre décroissant.

Grâce aux étapes ci-dessus, nous avons construit un moteur de recherche de base en utilisant la bibliothèque php Elasticsearch et ajouté quelques fonctions de recherche avancées courantes. Vous pouvez l’étendre et l’optimiser davantage en fonction de vos besoins. J'espère que cet article vous a aidé à développer des moteurs de recherche performants.

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!

Étiquettes associées:
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