Skip to main content

Introduzione

Ci sono più modi per aggiungere la ricerca a un’applicazione. Laravel fornisce strumenti integrati che vanno dal match per keyword alla ricerca semantica con AI, senza servizi esterni obbligatori.

Confronto


Ricerca full-text

Le query LIKE non capiscono la lingua. La ricerca full-text usa indici dedicati e tiene conto di parole, forme, punteggio di rilevanza. MariaDB, MySQL e PostgreSQL la supportano nativamente.
Supportata su MariaDB, MySQL, PostgreSQL.

Indici full-text

PostgreSQL può indicare la lingua:
Nota sulla ricerca full-text in giapponese / italiano non-standard
In MySQL la ricerca full-text non anglofona ha limiti (es. AWS RDS supporta solo N-gram parser). Anche PostgreSQL è limitato per lingue con morfologia complessa. Considera motori dedicati come Meilisearch o Typesense.

Esecuzione

Con indice composito:
MariaDB/MySQL ordinano per rilevanza. In PostgreSQL whereFullText filtra soltanto: per l’ordinamento automatico usa il database engine di Scout.
Anche orWhereFullText per OR. Vedi il query builder.

Ricerca semantica / vettoriale

Il full-text si basa su match di keyword. La vector search usa embedding generati da AI per rappresentare il significato come array numerici e trovare risultati semanticamente vicini. Esempio: “best wineries in Napa Valley” corrisponde a “Top Vineyards to Visit” pur senza keyword condivise.
Richiede Laravel AI SDK. Supporta PostgreSQL (con l’estensione pgvector) e MongoDB (con laravel-mongodb). Laravel Cloud ha pgvector preinstallato su tutti i database Postgres.

Generare gli embedding

Con Stringable::toEmbeddings:
Batch con Embeddings:
Vedi la documentazione dell’AI SDK per configurazione e dimensioni.

Salvataggio e indicizzazione

Colonna vector in migration:
Cast in array:
Vedi Migration.

Ricerca per similarità

Passando una stringa, Laravel calcola l’embedding.
Anche whereVectorDistanceLessThan, selectVectorDistance, orderByVectorDistance.

Reranking

L’AI riordina un set di risultati per rilevanza rispetto alla query. Diversa dalla vector search: non richiede embedding preesistenti e si applica a qualsiasi collezione di testo. Pattern efficace: filtra veloce + rerank.
Le Collection Laravel hanno la macro rerank.
Vedi la documentazione dell’AI SDK.

Laravel Scout

Fin qui abbiamo usato metodi del query builder. Laravel Scout è diverso: aggiungi il trait Searchable e Scout sincronizza automaticamente gli indici.

Database engine

Full-text + LIKE sul DB esistente. Senza servizi esterni.
Il database engine di Scout ordina per rilevanza anche in PostgreSQL.

Motori di terze parti

Scout supporta Algolia, Meilisearch, Typesense. API unificata: puoi migrare cambiando poco.
Non serve a tutti. I metodi integrati coprono la maggior parte dei casi.
Vedi la guida a Laravel Scout.

Combinazioni

Full-text + Reranking

Filtra veloce con full-text, poi rerank con AI.

Vector + filtri classici

Restringi a un tenant e cerca per similarità.

Pagine correlate

Laravel Scout

Guida completa alla sincronizzazione automatica degli indici.

Laravel AI SDK

Configurazione dell’AI SDK per embedding e reranking.

Query Builder

Dettagli su whereFullText, whereVectorSimilarTo, ecc.

Migration

Creazione di indici full-text e colonne vector.
Ultima modifica il 13 luglio 2026