Maison >développement back-end >tutoriel php >Exploitation de recherche de texte intégral dans Laravel

Exploitation de recherche de texte intégral dans Laravel

百草
百草original
2025-03-05 15:26:15838parcourir

Harnessing Full-Text Search in Laravel

Laravel offre de puissantes capacités de recherche en texte intégral via les méthodes whereFullText et orWhereFullText, fournissant une approche plus raffinée de la récupération de données que les instructions simples LIKE.

Prérequis du système

  • Bases de données compatibles: MariaDB, MySQL et PostgreSQL sont pris en charge.
  • L'indexation du texte intégral sur les colonnes pertinentes est essentielle.
  • Pour les applications à grande échelle, envisagez d'utiliser Elasticsearch ou MeiliSearch pour des performances optimales.

Les méthodes whereFullText s'intègrent parfaitement à la fonctionnalité de recherche intégrale intégrée de votre base de données. Un exemple de base suit:

use Illuminate\Support\Facades\DB;
$users = DB::table('users')
    ->whereFullText('bio', 'web developer')
    ->get();

Cela peut être élargi pour créer des fonctionnalités de recherche robustes pour des applications telles que des blogs ou des systèmes de gestion de contenu. Ce qui suit illustre une recherche sur plusieurs colonnes avec filtrage de catégorie:

// ArticleController.php
public function search(Request $request)
{
    return Article::query()
        ->whereFullText(['title', 'content'], $request->search)
        ->when($request->category, function ($query, $category) {
            $query->where('category', $category);
        })
        ->orderBy('published_at', 'desc')
        ->paginate(15);
}
// migration
Schema::create('articles', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('content');
    $table->string('category');
    $table->timestamp('published_at');
    $table->fullText(['title', 'content']);
});

Laravel génère automatiquement le SQL correct pour votre base de données. Pour MariaDB et MySQL, il est par défaut des instructions MATCH AGAINST utilisant le mode de langage naturel.

Cette approche rationalise la logique de recherche complexe tout en maintenant des vitesses de requête efficaces pour des projets de taille modéré. Cependant, pour les applications exigeant une recherche avancée ou une gestion des ensembles de données substantiels, des moteurs de recherche dédiés tels que Elasticsearch ou MeiliSearch sont recommandés.

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