Maison  >  Article  >  développement back-end  >  Comment créer une fonction de recherche multicritère à l'aide d'Elasticsearch et PHP

Comment créer une fonction de recherche multicritère à l'aide d'Elasticsearch et PHP

WBOY
WBOYoriginal
2023-07-08 09:18:11823parcourir

Comment utiliser Elasticsearch et PHP pour créer des fonctions de recherche multi-conditions

Introduction :
Elasticsearch est un moteur de recherche et d'analyse distribué open source qui est souvent utilisé pour créer de puissantes fonctions de recherche. Il permet des recherches rapides et précises et prend en charge différents types de requêtes. Cet article explique comment utiliser Elasticsearch et PHP pour créer des fonctions de recherche multi-conditions et fournit des exemples de code correspondants.

  1. Installer et configurer Elasticsearch :
    Tout d'abord, nous devons installer et configurer Elasticsearch. Vous pouvez télécharger Elasticsearch depuis le site officiel et suivre les instructions pour l'installer. Une fois l'installation terminée, démarrez Elasticsearch à l'aide de l'interface de ligne de commande.
  2. Installez et configurez l'extension PHP Elasticsearch :
    Ensuite, nous devons installer et configurer l'extension PHP pour Elasticsearch. L'installation de l'extension PHP Elasticsearch est simple à l'aide de Composer. Créez un fichier composer.json dans le répertoire racine de votre projet et ajoutez le contenu suivant :
{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

Exécutez ensuite la commande composer install pour installer l'extension PHP Elasticsearch.

  1. Connectez-vous à Elasticsearch :
    Dans le code PHP, nous devons établir une connexion avec Elasticsearch. Tout d'abord, introduisez l'espace de noms de l'extension PHP Elasticsearch et créez un objet client Elasticsearch :
<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$hosts = [
    'http://localhost:9200' // Elasticsearch的访问地址
];

$client = ClientBuilder::create()->setHosts($hosts)->build();
?>
  1. Créer un index :
    Avant d'effectuer une recherche multi-conditions, nous devons créer un index et ajouter des données à l'index. Si vous disposez déjà d’un index existant, vous pouvez ignorer cette étape.

Tout d'abord, définissez une configuration et un mappage d'index. Par exemple, nous créons un index appelé « articles » et définissons le type « articles » et spécifions les types des champs « titre » et « contenu » :

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => ['type' => 'text'],
                'content' => ['type' => 'text']
            ]
        ]
    ]
];

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

Ensuite, ajoutons des documents à l'index. Par exemple, ajoutons un document intitulé "Actualités" :

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'title' => '新闻',
        'content' => '这是一条新闻'
    ]
];

$response = $client->index($params);
?>
  1. Effectuez une recherche multicritère :
    Maintenant, nous pouvons effectuer une recherche multicritère. Tout d’abord, définissez une requête qui inclut tous les critères de recherche. Par exemple, nous souhaitons rechercher des documents dont le titre contient « Actualités » et dont le contenu contient « International » :
<?php
$params = [
    'index' => 'articles',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['title' => '新闻']],
                    ['match' => ['content' => '国际']]
                ]
            ]
        ]
    ]
];

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

Enfin, parcourez les résultats de la recherche et imprimez le titre et le contenu de chaque document :

<?php
foreach ($response['hits']['hits'] as $hit) {
    echo '标题:' . $hit['_source']['title'] . '<br>';
    echo '内容:' . $hit['_source']['content'] . '<br>';
    echo '----------------<br>';
}
?>

Conclusion :
Avec les étapes ci-dessus, nous pouvons créer une fonctionnalité de recherche multicritère en utilisant Elasticsearch et PHP. Tout d'abord, installez et configurez Elasticsearch et l'extension PHP correspondante ; puis connectez-vous à Elasticsearch et créez un index. Enfin, effectuez une recherche multi-conditions et traitez les résultats de la recherche.

Remarque : Afin de garantir l'exactitude et les performances de la recherche, il est recommandé d'optimiser l'index avant d'utiliser la recherche multi-conditions, comme la configuration d'un segmenteur de mots approprié, la création d'un index, etc.

Matériaux de référence :

  • Documentation officielle d'Elasticsearch : https://www.elastic.co/guide/index.html
  • Documentation officielle d'Elasticsearch PHP : https://www.elastic.co/guide/en/elasticsearch/ client/php-api/current/index.html

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