Maison  >  Article  >  cadre php  >  Développement Laravel : Comment implémenter la recherche en texte intégral à l'aide de Laravel Scout et Meilisearch ?

Développement Laravel : Comment implémenter la recherche en texte intégral à l'aide de Laravel Scout et Meilisearch ?

PHPz
PHPzoriginal
2023-06-14 12:01:341356parcourir

Avec le développement d'Internet, la recherche en texte intégral est devenue une fonctionnalité essentielle pour de plus en plus de sites Web et d'applications. Dans le framework Laravel, nous pouvons implémenter des fonctions de recherche en texte intégral efficaces et rapides en intégrant Laravel Scout et Meilisearch.

1. Qu'est-ce que Laravel Scout ?

Laravel Scout est un plug-in officiellement fourni par Laravel pour fournir une fonctionnalité de recherche en texte intégral pour les applications Laravel. Il est facile à utiliser et prend en charge plusieurs moteurs de recherche, notamment Algolia, Elasticsearch et Meilisearch.

2. Qu'est-ce que Meilisearch ?

Meilisearch est un moteur de recherche en texte intégral rapide, sécurisé et open source qui peut rapidement s'adapter à de grands ensembles de données. Comparé à d'autres moteurs de recherche, Meilisearch offre une vitesse de recherche plus rapide et un espace d'index plus petit, tout en fournissant également une série d'options de requête et de filtrage faciles à utiliser.

3. Comment utiliser Laravel Scout et Meilisearch pour implémenter la recherche en texte intégral ?

  1. Installez Laravel Scout et Meilisearch

Tout d'abord, vous devez installer Laravel Scout et Meilisearch dans votre application Laravel. En prenant Laravel 8 comme exemple ici, nous pouvons utiliser Composer pour l'installer :

composer require laravel/scout meilisearch/meilisearch-php
  1. Configurer Laravel Scout

Après avoir terminé l'installation, nous devons également configurer Laravel Scout dans l'application Laravel. Ouvrez le fichier config/app.php et ajoutez le fournisseur de services du projet Laravel Scout au tableau des fournisseurs :

'providers' => [
    // ...
    LaravelScoutScoutServiceProvider::class,
],

Ensuite, configurez les informations de la base de données et les informations Meilisearch dans le fichier .env :

SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_KEY=masterKey
MEILISEARCH_HTTP_CLIENT=meilisearch
  1. Créez le modèle et l'index.

Connect Ensuite, nous devons créer un modèle de recherche en texte intégral dans l'application Laravel et définir l'index de recherche dans le modèle. Par exemple, nous pouvons créer un modèle nommé Article :

php artisan make:model Article -m

Lors de la création du modèle, un fichier de migration de base de données sera créé. Nous devons ajouter un index de recherche pour le modèle dans le fichier de migration :

Schema::create('articles', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('body');
    $table->timestamps();

    $table->softDeletes();
});

// 添加搜索索引
IlluminateSupportFacadesSchema::table('articles', function ($table) {
    $table->text('searchable')->nullable();
});

// 创建搜索索引
IlluminateSupportFacadesArtisan::call('scout:import', ['model' => AppModelsArticle::class]);

Après avoir ajouté l'index de recherche dans le fichier de migration, nous devons mettre à jour le modèle afin que Laravel Scout puisse utiliser l'index pour la recherche en texte intégral :

use LaravelScoutSearchable;

class Article extends Model
{
    use Searchable;
}
  1. pour la recherche en texte intégral

À ce stade, nous avons terminé la configuration de base de l'utilisation de Laravel Scout et Meilisearch pour implémenter la recherche en texte intégral. Pour effectuer une recherche en texte intégral, nous pouvons utiliser la méthode de recherche globale fournie par Laravel Scout :

$articles = Article::search('搜索关键词')->get();

Grâce à cette méthode, nous pouvons obtenir rapidement et efficacement des articles pertinents et améliorer l'expérience utilisateur.

4. Résumé

Laravel Scout et Meilisearch sont une paire d'outils de recherche en texte intégral puissants et efficaces qui peuvent nous aider à obtenir des fonctions de recherche rapides et précises. Seules une configuration et des appels simples sont nécessaires pour nous aider à répondre aux besoins des utilisateurs et à améliorer l'expérience utilisateur.

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