Maison  >  Article  >  développement back-end  >  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
WBOYoriginal
2023-09-13 08:19:411052parcourir

如何使用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"
    }
}

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();
  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);
  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);
  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);

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);

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);

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);

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!

Déclaration:
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