Use pgvector-php with Doctrine
masterFor standalone Doctrine usage, install the package and register the types using PgvectorSetup::registerTypes($entityManager). Ensure the extension is enabled by executing CREATE EXTENSION IF NOT EXISTS vector; on the connection.
Entity and Querying:
Use Pgvector\Vector for the column type and query using distance functions like l2_distance in DQL.
use Pgvector\Doctrine\PgvectorSetup;
use Pgvector\Vector;
// Register types
PgvectorSetup::registerTypes($entityManager);
// Enable extension
$entityManager->getConnection()->executeStatement('CREATE EXTENSION IF NOT EXISTS vector');
// Querying
$neighbors = $entityManager->createQuery('SELECT i FROM Item i ORDER BY l2_distance(i.embedding, ?1)')
->setParameter(1, new Vector([1, 2, 3]))
->setMaxResults(5)
->getResult();