In questa mini guida diamo uno sguardo approfondito a Laravel Scout, un tool che non potete non prendere in considerazione se utilizzate Laravel.

Laravel Scout per la ricerca full-text

In una ricerca full-text, un motore di ricerca esamina tutte le parole in ogni documento memorizzato mentre tenta di soddisfare i criteri di ricerca (ad esempio, il testo specificato da un utente).

In pratica, data una parola chiave o un set ti parole, il motore di ricerca esamina il contenuto testuale di una serie di documenti (indici di ricerca) cercando quelli più inerenti alle parole chiave inserite.

Cos’è Laravel Scout

Laravel Scout fornisce una soluzione semplice per aggiungere la ricerca full-text ai tuoi modelli Eloquent. Utilizzando i model observer, Scout mantiene automaticamente i tuoi indici di ricerca sincronizzati con i tuoi record Eloquent.

Scount crea gli indici di ricerca tramite strumenti esterni. Attualmente, Scout viene fornito con i driver Algolia, MeiliSearch e MySQL/PostgreSQL (database)

Inoltre, Scout include un driver di “raccolta” progettato per l’utilizzo dello sviluppo locale e non richiede dipendenze esterne o servizi di terze parti. Inoltre, scrivere driver personalizzati è semplice e sei libero di estendere Scout con le tue implementazioni di ricerca.

Installare Scout

Per prima cosa si deve installare il package di scout tramite composer:

composer require laravel/scout

Quindi, aggiungi il service provider di scout (Laravel\Scout\ScoutServiceProvider::class) alla sezione provider di config/app.php.

Supponendo che tu stia usando Algolia come provider, esegui php artisan vendor:publish e incolla le tue credenziali Algolia in config/scout.php.

Infine, installa Algolia SDK:

composer require algolia/algoliasearch-client-php

Prepara i model per l’indicizzazione

Apri un model e importa il trait Laravel\Scout\Searchable. 

È possibile definire quali proprietà sono ricercabili sovrascrivendo il metodo toSearchableArray() e definire il nome dell’indice del modello utilizzando il metodo searchableAs() (di default è il nome della tabella). 

Una volta fatto questo, puoi andare a controllare la tua pagina dell’indice di Algolia sul loro sito web; quando aggiungi, aggiorni o elimini i record di revisione, vedrai l’aggiornamento dell’indice Algolia.

Dai un’occhiata alla nostra offerta formativa! Diventa un developer di livello avanzato, scegli i corsi LaraMind!

 

Ricerca

 

Eseguire una ricerca è molto semplice: è sufficiente utilizzare il nuovo metodo sarach() associato al model.

 

ModelName::search(‘ricetta carbonara’)->paginate(20);

 

Il metodo search() restituisce una collection di model, esattamente come una get(). Gli ID vengono archiviati in Algolia, che restituisce un elenco di ID corrispondenti, quindi Scout estrae i record del database per quelli e li restituisce come oggetti Eloquent.

In conclusione

Laravel Scout è molto semplice da installare e configurare. Ecco qualche link utile per approfondire l’argomento: