(float) $value, $embedding)).']'; $rows = Article::query() ->select('articles.*') ->selectRaw('embedding <=> ?::vector as distance', [$vector]) ->whereNotNull('embedding') ->orderByRaw('embedding <=> ?::vector', [$vector]) ->limit($limit) ->get(); return $rows ->map(fn (Article $article) => ArticleCandidateDTO::fromArticle($article, (float) $article->distance)) ->all(); } }