Introduzione
Laravel Scout è una soluzione driver-based che aggiunge la ricerca full-text ai modelli Eloquent. Sincronizza automaticamente record Eloquent e indici di ricerca tramite osservatori del modello. Scout include il motore integratodatabase che sfrutta il full-text di MySQL/PostgreSQL e la clausola LIKE senza servizi esterni. In produzione, per tolleranza ai typo, ricerche facettate e geospaziali, i motori esterni sono utili.
Motori supportati
Installazione
Laravel\Scout\Searchable al modello.
Code
Con motori esterni si consiglia di attivare le code per la sincronizzazione in background.Job univoci
Per applicazioni molto scritte, evita job duplicati sullo stesso record.Prerequisiti dei driver
Algolia
Impostazioni indice
Meilisearch
Meilisearch è veloce e open source. In locale è comodo con Laravel Sail.Impostazioni indice (Meilisearch)
RegistrafilterableAttributes per where() e sortableAttributes per orderBy().
Typesense
Typesense è open source, supporta keyword, semantica, geo e vettori.Motore database / collection
Senza servizi esterni. database: full-text MySQL/PostgreSQL eLIKE.
Con database engine gli indici non vanno gestiti a parte.
Trait Searchable
toSearchableArray()
Nome dell’indice
Strategie di ricerca (database engine)
Condizionale
Gestione degli indici
Sezione rilevante con Algolia/Meilisearch/Typesense. Con database engine non serve.
Import di record esistenti
Flush
Pausa della sincronizzazione
Aggiungi/rimuovi manualmente
delete() la rimozione è automatica.
Ricerca
Paginazione
simplePaginate:
Filtri e ordinamento
Eager loading
Soft delete
Motori personalizzati
EstendiLaravel\Scout\Engines\Engine e implementa 8 metodi:
AppServiceProvider::boot():
Pagine correlate
Eloquent ORM
Basi dei modelli Eloquent.
Relazioni Eloquent
Definizione delle relazioni e eager loading.
Code
Scout aggiorna gli indici in background via code.