---
title: Overview
---

[Similarity search](/documentation/concepts/search#similarity-search) is a technique that matches documents against a query based on semantic meaning.

ParadeDB's similarity search is powered by `pgvector`, a Postgres extension that enables HNSW search over dense vectors. Please refer to the
[`pgvector` documentation](https://github.com/pgvector/pgvector) for more complete documentation.

## Vector Type

The `vector` data type is used to store vectors in ParadeDB. `vector` has a maximum dimension (i.e. length) of `2,000` entries.

```sql
SELECT '[1,2,3]'::vector;
```

## Sparse Vector Type

Sparse vectors are a special type of vector whose entries are mostly zero. They are generated by specialized embedding models like SPLADE.

Because the size of sparse vectors frequently exceeds the `2,000` entry limit of the `vector` type, sparse vectors can be stored in ParadeDB with the `sparsevec` type. This type compresses sparse vectors by storing nonzero values and their positions rather
than the entire vector, and can support up to `1,000` non-zero entries.

```sql
-- Note we only need to specify the positions of the non-zero values
SELECT '{1:3,3:1,5:2}/5'::sparsevec;
```

The format is `{index1:value1,index2:value2}/dimensions` and indices start at 1 like SQL arrays.
