Maison > cadre php > Laravel > le corps du texte

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

王林
Libérer: 2023-06-14 10:14:10
original
1272 Les gens l'ont consulté

Développement Laravel : Comment utiliser Laravel Scout pour implémenter la recherche en texte intégral ?

Laravel Scout est une solution de recherche en texte intégral Laravel. Il s'agit d'un logiciel open source populaire qui permet aux développeurs d'implémenter facilement des fonctions de recherche en texte intégral efficaces. Dans cet article, nous présenterons comment utiliser Laravel Scout pour implémenter la fonctionnalité de recherche en texte intégral.

Installer Laravel Scout

Tout d'abord, nous devons installer Laravel Scout. Il peut être installé à l'aide de Composer :

composer require laravel/scout
Copier après la connexion

Ensuite, il faut installer un moteur de recherche externe comme Algolia ou Elasticsearch. Nous introduisons ici l'utilisation d'Algolia comme moteur de recherche.

Algolia est un moteur de recherche basé sur le cloud qui fournit une API puissante et un ensemble d'outils qui vous permettent de créer, configurer et utiliser facilement des moteurs de recherche. Afin d'utiliser Algolia comme moteur de recherche de Laravel Scout, nous devons installer son SDK :

composer require algolia/algoliasearch-client-php
Copier après la connexion

Configurer Algolia

Ensuite, nous devons configurer Algolia. Tout d’abord, nous devons créer un compte Algolia et créer une application et un index. L'utilisation d'Algolia ne sera pas présentée en détail ici. Les lecteurs intéressés peuvent consulter eux-mêmes sa documentation officielle.

Ensuite, nous devons ajouter l'ID d'application d'Algolia et la clé API au fichier .env de Laravel :

ALGOLIA_APP_ID=your_application_id
ALGOLIA_SECRET=your_api_secret
Copier après la connexion

Configurer le modèle de recherche dans la base de données

Ensuite, nous devons définir notre modèle de recherche et le configurer. Ajouté à Laravel Scout . Dans cet exemple, nous rechercherons notre modèle d'article. Tout d'abord, nous devons utiliser le trait Searchable dans notre modèle d'article :

use LaravelScoutSearchable;

class Post extends Model
{
    use Searchable;
    ...
}
Copier après la connexion

Ensuite, nous devons définir une méthode searchableAs sur le modèle pour spécifier quel index Algolia sera recherché :

public function searchableAs()
{
    return 'posts_index';
}
Copier après la connexion

Créez cet index dans Algolia et cet index sera Utilisé pour stocker nos enregistrements d'articles. Ensuite, dans notre modèle de recherche (le modèle Post dans ce cas), nous devons définir une méthode toSearchableArray :

public function toSearchableArray()
{
    $array = $this->toArray();

    return $array;
}
Copier après la connexion

La méthode toSearchableArray renvoie un tableau associatif contenant tous les champs consultables.

Recherche avec Laravel Scout

Maintenant que nous avons terminé la configuration de Laravel Scout et d'Algolia, nous avons également mis en place le modèle de recherche dans notre modèle d'article. Maintenant, nous devons implémenter une page de recherche dans notre application.

Nous avons besoin d'un formulaire de recherche qui est soumis à un contrôleur qui traitera la requête de recherche et l'enverra à Algolia pour la recherche. Nous devons utiliser la méthode de recherche de Laravel Scout pour rechercher dans l'index Algolia :

public function search(Request $request)
{
    $search = $request->get('q');

    $posts = Post::search($search)->get();

    return view('search', compact('posts', 'search'));
}
Copier après la connexion

La méthode de recherche renvoie un ensemble de résultats de recherche Laravel Scout grâce auquel nous pouvons obtenir les résultats de la recherche.

Enfin, nous devons afficher les résultats de la recherche à l'utilisateur. Dans les pages Web, nous pouvons utiliser le moteur de modèles Blade de Laravel pour afficher les résultats :

@if(count($posts) > 0)
    @foreach($posts as $post)
        <div class="post">
            <h2>{{$post->title}}</h2>
            <p>{{$post->content}}</p>
        </div>
    @endforeach
@else
    <div class="alert alert-warning">
        No results found for "{{$search}}"
    </div>
@endif
Copier après la connexion

Conclusion

Laravel Scout est une solution de recherche en texte intégral populaire basée sur des moteurs de recherche externes tels qu'Algolia, qui permet aux développeurs de mettre facilement en œuvre une recherche en texte intégral efficace. fonction. Dans cet article, nous avons appris à utiliser Laravel Scout pour implémenter la recherche en texte intégral, notamment en configurant Algolia, en créant un modèle de recherche et en utilisant Laravel Scout pour effectuer une recherche dans votre application. Cela nous aide à ajouter plus facilement de puissantes capacités de recherche à nos applications, améliorant ainsi 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!

É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