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

王林
Libérer: 2023-10-03 09:44:01
original
804 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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();
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!