Maison > développement back-end > tutoriel php > 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
Libérer: 2023-07-08 09:20:01
original
828 Les gens l'ont consulté

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

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

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

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>';
}
?>
Copier après la connexion

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!

É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