Maison  >  Article  >  développement back-end  >  Pratique de développement de fonctions de recherche associées basées sur Elasticsearch en PHP

Pratique de développement de fonctions de recherche associées basées sur Elasticsearch en PHP

王林
王林original
2023-10-03 09:07:41798parcourir

PHP 中基于 Elasticsearch 的相关搜索功能开发实践

Pratique de développement de fonctions de recherche associées basées sur Elasticsearch en PHP

Vue d'ensemble
Dans le développement Web moderne, la fonction de recherche est une partie très importante. En tant que moteur de recherche distribué puissant et flexible, Elasticsearch est largement utilisé dans diverses applications Web. Cet article expliquera comment utiliser Elasticsearch en PHP pour développer des fonctions de recherche associées et joindra des exemples de code spécifiques.

Installation et configuration d'Elasticsearch
Tout d'abord, nous devons installer Elasticsearch et effectuer les configurations associées. Vous pouvez sélectionner la version adaptée à votre système d'exploitation via la page de téléchargement du site officiel d'Elasticsearch (https://www.elastic.co/cn/downloads/elasticsearch) et l'installer selon les étapes d'installation officielles.

Une fois l'installation terminée, vous devez modifier le fichier de configuration Elasticsearch elasticsearch.yml. Ouvrez ce fichier, recherchez et modifiez la configuration suivante :

cluster.name: my-cluster
node.name: my-node
network.host: 0.0.0.0
http.port: 9200

Utilisation du client PHP Elasticsearch
Pour utiliser Elasticsearch en PHP, nous devons installer le client PHP Elasticsearch. Il peut être installé via Composer, la commande est la suivante :

composer require elasticsearch/elasticsearch

Une fois l'installation terminée, nous pouvons utiliser le code suivant pour initialiser un client Elasticsearch en PHP :

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

Créer un index et un mappage
Avant d'utiliser Elasticsearch pour rechercher, nous devons d'abord créer l'index et le mappage des paramètres. Les index sont comme des tables dans une base de données et les mappages sont comme des champs dans une table. Chaque index peut avoir plusieurs mappages.

Voici un exemple de création d'un index et de mappage :

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

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

Ajout de documents à l'index
Une fois l'index créé, nous pouvons ajouter des données à l'index afin qu'il puisse être recherché. Voici un exemple d'ajout de documents à l'index :

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'Elasticsearch 示例文章',
        'content' => '这是一个关于Elasticsearch的示例文章。',
        'created_at' => '2022-01-01',
    ],
];

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

Recherche de documents
Avec l'index et les données en place, nous pouvons effectuer des opérations de recherche. Ce qui suit est un exemple simple de recherche en texte intégral :

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

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

Le code ci-dessus renverra tous les documents contenant le mot-clé "Elasticsearch" dans le contenu.

Agrégation et filtrage
En plus d'une simple recherche en texte intégral, Elasticsearch offre également de puissantes capacités d'agrégation et de filtrage. Voici un exemple :

$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'avg_views' => [
                'avg' => [
                    'field' => 'views',
                ],
            ],
        ],
        'query' => [
            'term' => [
                'category' => 'technology',
            ],
        ],
    ],
];

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

Le code ci-dessus renverra le nombre moyen de vues dans les documents classés « technologie ».

Résumé
Cet article explique comment utiliser Elasticsearch en PHP pour développer des fonctions de recherche associées. Nous procédons à l'installation et à la configuration d'Elasticsearch, à l'utilisation du client PHP Elasticsearch, à la création d'index et de mappages et à l'ajout de documents à l'index. De plus, nous démontrons l’utilisation de fonctionnalités simples de recherche en texte intégral et de filtrage agrégé. L'exemple de code ci-dessus est uniquement à titre de référence et doit être ajusté en fonction des besoins spécifiques des projets réels.

J'espère que cet article pourra vous aider à comprendre et à utiliser les fonctions de recherche pertinentes basées sur Elasticsearch en PHP.

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