This is an enterprise-only feature. You can use free trial credits to try it out.

**This feature is in preview.** This feature is subject to change. To share feedback and/or issues, contact Support.

The `VECTOR`

data type stores fixed-length arrays of floating-point numbers, which represent data points in multi-dimensional space. Vector search is often used in AI applications such as Large Language Models (LLMs) that rely on vector representations.

For details on valid `VECTOR`

comparison operators, refer to Syntax. For the list of supported `VECTOR`

functions, refer to Functions and Operators.

`VECTOR`

functionality is compatible with the `pgvector`

extension for PostgreSQL. Vector indexing is **not** supported at this time.

## Syntax

A `VECTOR`

value is expressed as an array of floating-point numbers. The array size corresponds to the number of `VECTOR`

dimensions. For example, the following `VECTOR`

has 3 dimensions:

```
[1.0, 0.0, 0.0]
```

You can specify the dimensions when defining a `VECTOR`

column. This will enforce the number of dimensions in the column values. For example:

```
ALTER TABLE foo ADD COLUMN bar VECTOR(3);
```

The following `VECTOR`

comparison operators are valid:

`=`

(equals). Compare vectors for equality in filtering and conditional queries.`<>`

(not equal to). Compare vectors for inequality in filtering and conditional queries.`<->`

(L2 distance). Calculate the Euclidean distance between two vectors, as used in nearest neighbor search and clustering algorithms.`<#>`

(negative inner product). Calculate the inner product of two vectors, as used in similarity searches where the inner product can represent the similarity score.`<=>`

(cosine distance). Calculate the cosine distance between vectors, such as in text and image similarity measures where the orientation of vectors is more important than their magnitude.

## Size

The size of a `VECTOR`

value is variable, but it's recommended to keep values under 1 MB to ensure performance. Above that threshold, write amplification and other considerations may cause significant performance degradation.

## Functions

For the list of supported `VECTOR`

functions, refer to Functions and Operators.

## Example

Create a table with a `VECTOR`

column, specifying `3`

dimensions:

```
CREATE TABLE items (
category STRING,
vector VECTOR(3),
INDEX (category)
);
```

Insert some sample data into the table:

```
INSERT INTO items (category, vector) VALUES
('electronics', '[1.0, 0.0, 0.0]'),
('electronics', '[0.9, 0.1, 0.0]'),
('furniture', '[0.0, 1.0, 0.0]'),
('furniture', '[0.0, 0.9, 0.1]'),
('clothing', '[0.0, 0.0, 1.0]');
```

Use the `<->`

operator to sort values with the `electronics`

category by their similarity to `[1.0, 0.0, 0.0]`

, based on geographic distance.

```
SELECT category, vector FROM items WHERE category = 'electronics' ORDER BY vector <-> '[1.0, 0.0, 0.0]' LIMIT 5;
```

```
category | vector
--------------+--------------
electronics | [1,0,0]
electronics | [0.9,0.1,0]
```