ivf_partition reads an existing IVF-family vector index’s trained
partitions and assigns each row to the one its vector falls into. The column
needs an up-to-date, single-segment index before the function runs — the
same requirement dedupe has.
Grouping by its result buckets rows by vector proximity without a full
pairwise scan — useful for blocking a large table into comparable chunks,
such as before a pairwise similarity pass.
Input
ivf_partition takes exactly 1, 3, or 4 arguments — the vector column
alone (scans every partition), or the vector column plus selection and
count, plus seed only when selection is 'random':
Arguments can be passed positionally,
ivf_partition(embedding, 'random', 100, 42),
or named as shown above. count and seed are the same scan-scoping
arguments duplicate_pairs accepts,
so a sampled partition estimate carries over — but not dedupe, which
always scans every partition and refuses sampling arguments entirely.
What to read next
Cluster records by index partition
Use this function to group and sample records by an existing index’s partitions.
DEDUPE
The packaged table function for the deduplication use case, over the same index.