Tip
For more detailed information and comprehensive guides, please visit our official documentation
Partitech Doctrine PgVector is a Doctrine extension for integrating PostgreSQL vector types into your PHP projects using Doctrine ORM. This module simplifies using vectors in your database by providing calculation functions such as distance, inner product, and cosine similarity.
You can install Partitech Doctrine PgVector via Composer:
composer require partitech/doctrine-pgvector
Add the types and functions to your Doctrine configuration:
doctrine:
dbal:
types:
vector: Partitech\DoctrinePgVector\Type\VectorType
orm:
dql:
string_functions:
distance: Partitech\DoctrinePgVector\Query\Distance
inner_product: Partitech\DoctrinePgVector\Query\InnerProduct
cosine_similarity: Partitech\DoctrinePgVector\Query\CosineSimilarity
Use vector types directly in your Doctrine entities:
/** @Column(type="vector") */
private $vector;
distance(vector, vector)
inner_product(vector, vector)
cosine_similarity(vector, vector)
These functions can be directly used in your Doctrine queries.
Example query using distance:
$query = $entityManager->createQuery(
'SELECT e FROM Entity e ORDER BY distance(e.vector, :inputVector) ASC'
);
$query->setParameter('inputVector', [0.1, 0.2, 0.3]);
$result = $query->getResult();
To run unit tests:
composer test
Contributions are welcome! Check the issues page to start contributing or submit a Pull Request.
This project is licensed under the MIT License. See LICENSE for more details.