Position actuelle: Accueil> Derniers articles> Comment implémenter une recherche en temps proche de la réalité à l'aide de PHP et Elasticsearch

Comment implémenter une recherche en temps proche de la réalité à l'aide de PHP et Elasticsearch

M66 2025-06-21

Comment implémenter une recherche en temps proche de la réalité à l'aide de PHP et Elasticsearch

La fonctionnalité de recherche est indispensable dans les applications Web modernes, en particulier lorsqu'elles sont confrontées à de grandes quantités de données et à des requêtes simultanées élevées. Les méthodes de requête de base de données traditionnelles ne peuvent généralement pas répondre à ces besoins, et Elasticsearch, en tant que puissant moteur de recherche distribué, peut traiter efficacement des données à grande échelle et prendre en charge la recherche à temps proche.

Installez les clients Elasticsearch et PHP

Tout d'abord, vous devez installer Elasticsearch sur le serveur. Vous pouvez accéder au site officiel pour télécharger la dernière version du package d'installation et l'installer et le configurer en fonction des documents pertinents.

Ensuite, utilisez Composer pour installer la bibliothèque client Elasticsearch de PHP. Exécutez la commande suivante pour installer:

Le compositeur nécessite Elasticsearch / Elasticsearch

Connectez-vous à Elasticsearch

Dans le code PHP, vous devez d'abord créer une instance du client Elasticsearch et vous connecter au serveur Elasticsearch. Voici un exemple de code:

exiger «fournisseur / autoload.php»;
$ client = elasticsearchClientBuilder :: Create () -> build ();

Créer des index et des cartes

Avant de rechercher, vous devez créer des index et des mappages. Dans Elasticsearch, les index sont équivalents aux tableaux de la base de données, tandis que les cartes définissent la structure des données. Voici un exemple de création d'un index et de définition d'un mappage:

$ params = [
    'index' => 'my_index',
    'corps' => [
        'mappings' => [
            'propriétés' => [
                'title' => ['type' => 'text'],
                'contenu' => ['type' => 'text']
            ]]
        ]]
    ]]
]]
$ réponse = $ client-> indices () -> create ($ params);

Le code ci-dessus crée un index appelé "my_index" et définit un mappage des types de texte pour les champs "Title" et "Content". Vous pouvez personnaliser les champs et les types de données en fonction de vos besoins.

Ajouter un document

Ensuite, vous devez ajouter les données à l'index. Le code suivant montre comment ajouter un document contenant les champs "titre" et "Content" à l'index:

$ params = [
    'index' => 'my_index',
    'corps' => [
        'title' => 'Exemple de titre',
        'contenu' => 'Exemple de contenu'
    ]]
]]
$ réponse = $ client-> index ($ params);

Ce code ajoute un document contenant les champs "Title" et "Content" à l'index "my_index", et vous pouvez ajouter plus de champs au besoin.

Créer une requête de recherche

Une fois les données ajoutées, vous pouvez créer une requête de recherche pour récupérer les données. Voici un exemple de requête de recherche simple:

$ params = [
    'index' => 'my_index',
    'corps' => [
        'query' => [
            'match' => [
                'title' => 'Exemple'
            ]]
        ]]
    ]]
]]
$ réponse = $ client-> recherche ($ params);
<p>foreach ($ réponse [&#39;hits&#39;] [&#39;hits&#39;] comme $ hit) {<br>
echo $ hit [&#39;_ source&#39;] [&#39;title&#39;]. "\ n";<br>
}<br>

Ce code crée une requête de correspondance pour le champ "Title" et publie le titre du document correspondant.

Résumer

En combinant PHP et Elasticsearch, vous pouvez rapidement et efficacement des capacités de recherche à temps proche du réel. Cet article décrit le processus complet de l'installation et de la configuration d'ElasticSearch à la connexion Elasticsearch, à la création d'index, à l'ajout de documents et à effectuer des opérations de recherche. J'espère que cet article peut vous aider à mieux comprendre comment intégrer Elasticsearch dans les applications Web et obtenir une expérience de recherche fluide.