Download the PHP package inm39/mariadb-vector-bundle without Composer
On this page you can find all versions of the php package inm39/mariadb-vector-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download inm39/mariadb-vector-bundle
More information about inm39/mariadb-vector-bundle
Files in inm39/mariadb-vector-bundle
Package mariadb-vector-bundle
Short Description Symfony bundle providing Doctrine DBAL type and DQL functions for MariaDB Vector (VECTOR type, VEC_DISTANCE_*, semantic search). Requires MariaDB >= 11.7.
License MIT
Informations about the package mariadb-vector-bundle
MariaDB Vector Bundle
Symfony bundle for MariaDB Vector (MariaDB ≥ 11.7 / 11.8 LTS): Doctrine vector DBAL type, VEC_* DQL functions and a repository trait for semantic / nearest-neighbour search.
Bring RAG and semantic search to your existing MariaDB — no extra vector database needed.
Features
- ✅
vectorDoctrine DBAL type — mapVECTOR(N)columns to plain PHPfloat[] - ✅ DQL functions:
VEC_DISTANCE,VEC_DISTANCE_COSINE,VEC_DISTANCE_EUCLIDEAN,VEC_FROMTEXT,VEC_TOTEXT - ✅
VectorSearchTraitfor repositories:findNearest()in one line - ✅ Zero configuration — the bundle prepends everything into DoctrineBundle
Requirements
- PHP ≥ 8.1
- Symfony 6.4 / 7.x
- doctrine/orm ≥ 2.16 or 3.x
- MariaDB ≥ 11.7 (11.8 LTS recommended)
Installation
This bundle has no Symfony Flex recipe, so you need to register it by hand:
No config/packages/mariadb_vector.yaml is needed — see Configuration below, it's only required if you want to override the default.
Usage
1. Entity
2. Migration — add the VECTOR INDEX manually
The schema tool generates the VECTOR(768) column, but the vector index must be added by hand (one per table, column must be NOT NULL):
3. Repository search
4. Or raw DQL
⚠️ Performance notes (index usage)
MariaDB uses the vector index only when the query is:
on the bare distance call (or its alias). These patterns fall back to a full table scan:
- Wrapping the distance in an expression (
1 - VEC_DISTANCE_COSINE(...)) → compute the similarity score in an outer query instead. WHERE VEC_DISTANCE(...) < thresholdwithoutORDER BY ... LIMIT.- Using a distance function that doesn't match the index metric (
DISTANCE=cosinevseuclidean).
Configuration
Default config (nothing to do):
Set register_dql_functions: false if you use multiple entity managers and prefer registering the DQL functions yourself per-manager.
Generating embeddings
This bundle does not generate embeddings — pair it with any model. Example with Ollama (nomic-embed-text:v1.5):
Running tests
License
MIT
All versions of mariadb-vector-bundle with dependencies
doctrine/dbal Version ^3.7 || ^4.0
doctrine/orm Version ^2.16 || ^3.0
symfony/config Version ^6.4 || ^7.0
symfony/dependency-injection Version ^6.4 || ^7.0
symfony/http-kernel Version ^6.4 || ^7.0