Maison >développement back-end >tutoriel php >Comment implémenter une recherche en temps quasi réel à l'aide de PHP et Elasticsearch

Comment implémenter une recherche en temps quasi réel à l'aide de PHP et Elasticsearch

王林
王林original
2023-07-18 22:51:27869parcourir

Comment réaliser une recherche en temps quasi réel à l'aide de PHP et Elasticsearch

La fonctionnalité de recherche est une partie importante des applications Web modernes. Lorsqu’il s’agit de grandes quantités de données et de recherches simultanées par plusieurs utilisateurs, les méthodes traditionnelles d’interrogation des bases de données ne peuvent plus répondre aux besoins. Elasticsearch est un moteur de recherche et d'analyse distribué open source qui peut traiter rapidement des données à grande échelle et offrir des performances et une disponibilité élevées. Cet article explique comment utiliser PHP et Elasticsearch pour implémenter une fonctionnalité de recherche en temps quasi réel.

  1. Installer Elasticsearch et le client PHP

Tout d'abord, vous devez installer Elasticsearch sur le serveur. Vous pouvez télécharger la dernière version du package d'installation sur le site officiel (https://www.elastic.co/downloads/elasticsearch) et l'installer et le configurer conformément à la documentation officielle.

Ensuite, vous devez installer la bibliothèque client Elasticsearch pour PHP. Vous pouvez utiliser Composer pour installer, exécutez la commande suivante :

composer require elasticsearch/elasticsearch
  1. 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 simple :

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();
  1. Création d'index et de mappages

Avant d'effectuer une recherche, vous devez d'abord créer un index et un mappage. Les index sont un concept logique pour stocker des données dans Elasticsearch, similaire aux tables des bases de données traditionnelles.

Ce qui suit est un exemple de création d'index et de mappage :

$params = [
    'index' => 'my_index',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                ],
                'content' => [
                    'type' => 'text',
                ],
            ],
        ],
    ],
];

$response = $client->indices()->create($params);

Dans le code ci-dessus, un index nommé my_index est créé, et title et content sont créés. Le champ définit le mappage. Différents champs et types de mappage peuvent être définis en fonction des besoins réels. my_index的索引,并为titlecontent字段定义了映射。可以根据实际需求定义不同的字段和映射类型。

  1. 添加文档

在进行搜索之前,需要将数据添加到索引中。下面是一个示例:

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

$response = $client->index($params);

以上代码中,将一个包含titlecontent字段的文档添加到索引my_index中。可以根据实际需求添加更多的字段和内容。

  1. 创建搜索查询

最后,可以创建一个搜索查询来执行实际的搜索操作。下面是一个简单的搜索查询示例:

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

$response = $client->search($params);

foreach ($response['hits']['hits'] as $hit) {
    echo $hit['_source']['title'] . "
";
}

以上代码中,执行了一个根据title字段进行匹配的搜索查询,并输出了搜索结果中的title

    Ajouter des documents

    🎜Avant la recherche, les données doivent être ajoutées à l'index. Voici un exemple : 🎜rrreee🎜Dans le code ci-dessus, un document contenant les champs title et content est ajouté à l'index my_index. Plus de champs et de contenu peuvent être ajoutés en fonction des besoins réels. 🎜
      🎜Créer une requête de recherche🎜🎜🎜Enfin, une requête de recherche peut être créée pour effectuer l'opération de recherche proprement dite. Voici un exemple de requête de recherche simple : 🎜rrreee🎜Dans le code ci-dessus, une requête de recherche est exécutée en fonction du champ title et le title dans les résultats de la recherche est affiché. . champ. 🎜🎜En résumé, en utilisant PHP et Elasticsearch, nous pouvons facilement implémenter une fonctionnalité de recherche en temps quasi réel. Nous avons parcouru l'ensemble du processus, depuis l'installation et la configuration d'Elasticsearch jusqu'à la connexion à Elasticsearch, la création d'index et de mappages, l'ajout de documents et l'exécution d'opérations de recherche. J'espère que cet article sera utile pour implémenter des fonctionnalités de recherche en temps quasi réel à l'aide de PHP et Elasticsearch. 🎜

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