Laravel

Search Similar Content with Laravel whereVectorSimilarTo()

Search Similar Content with Laravel whereVectorSimilarTo()

Find records using vector similarity.

  • 07 Oct, 2026
  • 1 Views

Search Similar Content with Laravel whereVectorSimilarTo()

Traditional database searches usually match keywords. But what if you want to find content with a similar meaning, even when it uses different words?

Vector embeddings represent content as numerical vectors. Laravel 13 provides whereVectorSimilarTo() to query vector columns by similarity on supported database systems.

Basic Usage

$documents = DB::table('documents')
    ->whereVectorSimilarTo(
        'embedding',
        $queryEmbedding,
        minSimilarity: 0.4
    )
    ->limit(10)
    ->get();

Here:

  • embedding is the database vector column.
  • $queryEmbedding is the vector you want to compare against.
  • minSimilarity: 0.4 sets the minimum cosine similarity threshold.
  • limit(10) limits the returned results.

Laravel filters results by similarity and orders them by relevance.

Real-World Example

Imagine a knowledge-base application where users search for help articles using natural language.

A user searches for:

How can I reset my account password?

Your application converts that search into an embedding using an embedding model, then queries the database:

$articles = DB::table('articles')
    ->whereVectorSimilarTo(
        'embedding',
        $searchEmbedding,
        minSimilarity: 0.4
    )
    ->limit(5)
    ->get();

The results can include articles with similar meanings, even if they don't contain the exact search phrase.

Note: Generating embeddings is a separate step. Laravel's query method searches existing vectors; it doesn't generate embeddings for you.

When Should You Use It?

  • AI-powered knowledge bases
  • Semantic document search
  • Similar product discovery
  • Content recommendations
  • Finding related support articles


Share: