Skip to main content
pgvectorProduct page

pgvector Signals

What teams building AI features on pgvector report, with every finding tied to its evidence.

Read the findings

What the evidence says

Whose sources count

Practitioner sentiment, teams and leaders

−29 Negative from 24 sources that take a side

How this figure is made

Negative overall signal, net 29 points negative

From 21 authors in 19 discussions. Small sample. Run a pilot on your own documents and filters to measure recall against exact search, query latency at your filter selectivity, and memory per million vectors.

Analyzed
33 total sources
Top praise
For teams and technical leaders, no praise theme reaches 5 sources from 3 authors.
Top concern
Filters and the Query Planner (4 of 5 sources) See concern evidence

Mar 2025 to Oct 2026.

26 sources from practitioners, by month and sentiment.

Teams report pgvector in production at Discourse and Instacart, and Mem0 moved its vectors out when the planner skipped its indexes under tenant filters. Filters and the query planner, release regressions and host versions draw most of the reports.

Positive, mixed and negative sources

The score counts them as 4 positive, 7 mixed and 10 negative votes, one per author. See How the numbers work.

See the evidence

Below: 2 concerns and 1 disagreement.

Findings

Counted for Teams and technical leaders, from 24 sources. Change group

What practitioners praise

Every capability practitioners describe positively, ranked by how many sources say so. Open one to read who said it.

For teams and technical leaders, no capability reaches 5 sources from 3 authors.

    What concerns them

    Every concern practitioners raise, most raised first.

    1. Filters and the Query Planner4 of 5 sources on it raise it as a concernWith filters, the planner skips the index, or approximate scans return fewer rows, until queries or indexes are restructured.

      Counted for Teams and technical leaders.

      Raised as a concern, 4

      1. Negative

        Aashi Dutt, senior technical content writer at Mem0

        Mem0 blog: How we cut vector search latency by 70xEngineering blog post

        Mem0's HNSW indexes recorded 0 scans while every vector query fell back to an 8-to-14-second sequential scan over a 1,153 GB table, because the planner chose the scan once selective tenant filters entered. Mem0 moved its vectors to turbopuffer and calls staying on pgvector the sensible default under roughly 10 million vectors with simple queries.

        Published Jul 30, 2026self-described: Mem0's production vector search on Aurora PostgreSQL

      2. Mixed

        Ian Myers (igm503), Machine Learning Engineer, Shiftsmart (GitHub profile)

        GitHub issue by igm503GitHub issue

        With a filter of about 1% of the table, the planner kept choosing badly: LIMIT 5 on the HNSW index took 1,885 ms while a parallel sequential scan at LIMIT 40 took 235 ms. The maintainer's advice puts plan control on the team.

        Published Oct 26, 2025self-described: Recency-filtered similarity search over about 3 million vectors

      3. Negative

        JoranDox, GitHub issue reporter

        GitHub issue by JoranDoxGitHub issue

        The planner skipped a partial HNSW index. Forcing it was much faster, about 1.5ms against 15 ms, but returned partial results for larger LIMITs.

        Published Jul 23, 2025self-described: Filtered recommendation queries on pgvector

      4. Mixed

        whakim, first employee at Halcyon (in the comment)

        Hacker News comment by whakim: A RAG startup whose embeddings grew by orders of magnitudeHacker News comment

        The pgvector filtering story is better than a year earlier, but high-cardinality filters still feel like an afterthought. Low-cardinality filters can be solved with partial indexes even at scale.

        Published Mar 9, 2025self-described: A RAG startup whose embeddings grew by orders of magnitude

      Discussed without concern, 1

      1. Mixed

        Mikhail Nelaev (spyderdfx), Ruby on Rails Developer, abak-press (GitHub profile)

        GitHub issue by spyderdfxGitHub issue

        Nearest-neighbour results on a table of about 20 million binary hashes looked wrong. After he deleted about 15 million duplicates, the index returned the exact match only with hnsw.ef_search raised to 1,000, and the maintainer replied that approximate indexing does not give perfect recall.

        Published Mar 29, 2026self-described: Image-similarity search over binary hashes

      GILD's fact checks, which don't count as sources

      Checked Nov 1, 2026.With approximate indexes, filtering is applied after the index is scanned. You will see different results for queries after adding an approximate index. README: filtering with approximate indexes

      Open them in the record
    2. Releases and Host Versions4 of 5 sources on it raise it as a concernNew releases regress, and managed hosts ship older versions or limit what pgvector can do.

      Counted for Teams and technical leaders.

      Raised as a concern, 4

      1. Negative

        Nikolai Maasø Lunde (nlundee), Digdir (GitHub profile)

        GitHub issue by nlundeeGitHub issue

        Azure ships pgvector 0.8.2, where VACUUM running beside inserts can corrupt an HNSW index without an error. The issue plans to turn autovacuum off on HNSW-indexed tables until Azure ships 0.8.4 or later.

        Published Oct 29, 2026self-described: Genki, Digdir's shared generative AI platform for the Norwegian public sector, on Azure

      2. Negative

        itaispiegel (Itai Spiegel), GitHub issue reporter

        GitHub issue by itaispiegelGitHub issue

        A floating pgvector/pgvector:pg17 tag rebuilt from 0.8.2 to 0.8.4 and broke the team's migration-time index build in CI, with an error that 90 MB of memory was required against a 64 MB maintenance_work_mem.

        Published Jul 1, 2026self-described: Migration-time index builds in CI from the official Docker image

      3. Negative

        TuringNYC, CTO and SVP at an advertising holding company (HN profile)

        Hacker News comment by TuringNYCHacker News comment

        Replying about pgvector on Azure, they say it does not support ultra-wide vectors from the largest embedding models, so their team chops vectors up across fields.

        Published Jun 6, 2026self-described: An enterprise AI creative platform on Azure Postgres

      4. Mixed

        SongYoungUk (R3gardless), Kakao (GitHub profile)

        GitHub issue by R3gardlessGitHub issue

        halfvec cut the HNSW index to 19 GB from 38 GB with vector. A follow-up found halfvec significantly faster when built with GCC 14.2.1, after packaged builds on older compilers lost its speed.

        Published Mar 9, 2026self-described: Benchmarking pgvector with VectorDBBench on Cohere-10M

      Discussed without concern, 1

      1. Mixed

        Christian Winther (jippi), previously Staff Engineer at SeatGeek (GitHub profile)

        GitHub issue by jippiGitHub issue

        His team was affected by a Postgres 18 problem and asked for the fix in a release. The maintainer announced 0.8.3 four days later, on June 18, 2026.

        Published Jun 14, 2026self-described: Upgrading to Postgres 18 with pgvector in the stack

      GILD's fact checks, which don't count as sources

      Checked Nov 1, 2026.Version 0.8.7 (2026-10-01) fixed a buffer overflow with IVFFlat index build, and 0.8.3 (2026-06-17) fixed possible index corruption with HNSW vacuuming. The unreleased 0.9.0 drops support for Postgres 13 and 14. CHANGELOG

      Open them in the record

    Where the evidence agrees

    Statements this group's sources agree on, then the ones close to agreement.

    For teams and technical leaders, no statement reaches 5 sources from 3 authors.

    Where it disagrees

    Questions the sources split on, with the count on each side.

    • Evidence remains split

      Does pgvector hold up at production scale?

      • Holds up, 3 sources

        Discourse, Instacart and Clarvo run it in production at scale, with good recall and fast filtered queries once tuned.

      • Breaks down, 3 sources

        Halcyon and Mem0 found Postgres unsuitable as their vector counts grew, and one Hacker News commenter reports high latency past 100 million vectors.

    The evidence

    Whose experience this is

    The three groups, then every practitioner by the context they work in, and how emphasis changes with scale.

    Three groups drawn from the same sources. Choose a group to select whose experience counts. Within that group, each author counts once in the practitioner sentiment, with their latest view. Signals open on Teams and technical leaders.

    • Teams and technical leaders

      24 sources. Named companies and platform teams describe pgvector in production, from Discourse and Instacart to Mem0.

    • Individual builders

      2 sources. Individual developers describe pgvector for small RAG sites and half-precision storage.

    • All practitioners

      26 sources. Together, these accounts combine company write-ups with individual developers' comments.

    26 sources from practitioners, by the context they work in. Filled rows count for this group.

    1. Individual builderDevelopers building on the platform on their own2 sources

      Emphasizes Small corpora on one server, and halfvec storage

    2. Small product team2 to 10 engineers, or an unnamed startup team3 sources, counted here

      Emphasizes Handing a small system to operations, and restructuring filtered queries

    3. Product or platform team11 to 50 engineers, or a named company's team12 sources, counted here

      Emphasizes Planner choices under filters, release regressions and load on a shared database

    4. Technical leadershipLeaders setting model and platform choices across teams5 sources, counted here

      Emphasizes Founders and heads of engineering on scale ceilings, ingest load and host limits

    5. Organization-wideEnterprise or company-wide AI platform4 sources, counted here

      Emphasizes Discourse, Instacart and Digdir on fleet-wide use, recall and host versions

    What changes with scale. Individual developers keep pgvector for small corpora and half-precision storage. Teams report planner choices under filters and release regressions, and the largest workloads found Postgres unsuitable: Mem0 moved its vectors out past 10 million, and Halcyon, with trillions of embeddings, uses Vespa.

    Where the sources come from

    Where this group's sources were published.

    Counted for Teams and technical leaders, from 24 sources. Change group

    31 sources for this group, 7 of them documentation

    • Developer Communities20, 65% of 31 sources
    • Product Documentation7, 23% of 31 sources
    • Engineering Blogs4, 13% of 31 sources

    Earlier evidence remains when it still applies. A bug report on a release the maintainer later fixed is marked Still applicable, since the upgrade lesson holds.

    See sources by origin

    The record

    Who each source is, how it knows, whether it still applies and what it counts toward.

    About this read

    What changed, and how we count

    What changed

    • Nov 1, 2026: first edition, built from 26 practitioner records and 22 documentation statements that a different model checked against their stored pages.
    • Every account links to its public source and names its author and publication date.
    • A finding shows only when at least 5 sources from 3 different authors discuss it. A disagreement also requires at least 2 sources on each side.

    Method

    A running review of what teams building AI features on pgvector report, from individual builders to company-wide platforms. Each finding links to its sources, and each conflict shows both sides.

    Counts cover only the sources GILD reviewed.

    Who counts

    Teams and technical leaders
    Small product team, Product or platform team, Technical leadership, Organization-wide
    Individual builders
    Individual builder
    All practitioners
    Everyone in the teams and leaders and individual builders groups

    Choose a group to select whose experience counts. Within that group, each author counts once in the practitioner sentiment, with their latest view. GILD files each source in a group from how the account describes its author. A role or employer marked self-described is what the source states about themselves. Documentation checks facts for every group and never counts toward sentiment.

    How the numbers work

    • Overall signal. Positive votes minus negative ones, per 100 votes from the sources that take a side. Each author counts once, with their latest view, whoever they are and wherever they posted. The older weighted reading, where accounts GILD matched to a named person count three times when GILD lists the author among technical leaders and twice otherwise, is shown beside it as a second view. Where an author wrote more than one source, the line beside the split gives the votes, one per author, so the score follows from it. When one author's sources from the same day disagree, that author counts as mixed, and a half point rounds away from zero. Sources with no opinion are listed and not counted. Strong positive is +50 or higher, positive +20 to +49, mixed −19 to +19, negative −20 to −49, strong negative −50 or lower.
    • Weighted reading, second view. Counted the older way, where an account GILD matched to a named person counts two or three times, teams and leaders read −23 negative (method sentiment/S1). GILD printed that number as "GILD score" until October 29, 2026; most of those matches rest on a name or a self-described role.
    • Unscored. A group gets a score only with 20 sources from 15 authors. Below that, one source moves the score about 5 points, so the read says "Unscored until 20 sources from 15 authors" and shows its counts.
    • Independence. A source whose author works for the vendor, for one of its partners or programs, or for a competitor, and a page the vendor published or ran, is listed with that tie and counts toward nothing. One author counts on at most two records per product. The line under the score says how many authors and how many separate discussions the counted sources come from: comments in one thread are one discussion.
    • Praise and concerns. How many of the sources that discuss a theme praise it or raise it.
    • Consensus. A statement joins when 20% of the group's sources support it and fewer contradict it. Contradicting sources are counted separately. Below that line a statement shows as building. At 40% or more it reads Strong agreement; below, Recurring point.
    • Disagreements. The count on each side. GILD names no winner and gives no share of all users.
    • Minimum evidence. A finding needs 5 sources from 3 authors; a disagreement also needs 2 on each side. Smaller counts stay in the table below, marked under the minimum.

    Labels on a source

    A source's date and whether it still applies are separate: a recent post can describe an old version, and an old one can still hold.

    Documented
    Stated in official documentation.
    Reported
    A practitioner's account of their own use.
    Measured
    Backed by the source's own measurements, such as a comparative test or tracked team metrics.
    GILD analysis
    GILD's check of a claim against official documentation.
    Current
    Describes the product as it is now.
    Still applicable
    Older, and the behavior or lesson still holds.
    Needs a recheck
    May depend on a plan, version or setting that changed since it was written. It keeps counting until GILD rechecks it, since the rest of the account usually holds, and its card says so.
    Out of date
    No longer accurate. Kept in the record; counts toward nothing current.

    Flagged for a recheck, of the sources that take a side: teams and leaders 0 of 24, individual builders 0 of 2, all practitioners 0 of 26.

    Limits

    • These figures describe reviewed sources; they do not represent all pgvector users. Hacker News comments supply 12 of the 26 practitioner sources, GitHub issues 10 and company or practitioner blogs 4, and a bug report counts as negative.
    • Sources run from March 2025 to October 2026. Six of the ten GitHub reports name the pgvector release, from 0.8.0 to 0.8.6, and Hacker News comments mostly name none.

    Every count, and the sources behind it

    11 findings for 3 groups

    Each row opens its sources for the group you are reading.

    FindingTeams and technical leadersIndividual buildersAll practitionersSources
    Current readCurrent sentiment5 positive, 8 mixed, 11 negative1 positive, 1 mixed, 0 negative6 positive, 9 mixed, 11 negativeSources
    PraiseOne Database for Vectors and Data4 of 4 positive (under the minimum)0 of 0 positive (under the minimum)4 of 4 positive (under the minimum)Sources
    PraiseSmaller Indexes2 of 2 positive (under the minimum)1 of 1 positive (under the minimum)3 of 3 positive (under the minimum)Sources
    PraiseRecall and Speed in Production2 of 2 positive (under the minimum)0 of 0 positive (under the minimum)2 of 2 positive (under the minimum)Sources
    ConcernFilters and the Query Planner4 of 5 raise it0 of 1 raise it (under the minimum)4 of 6 raise itSources
    ConcernScale Ceiling4 of 4 raise it (under the minimum)0 of 0 raise it (under the minimum)4 of 4 raise it (under the minimum)Sources
    ConcernIndex Builds, Vacuum and Inserts4 of 4 raise it (under the minimum)0 of 0 raise it (under the minimum)4 of 4 raise it (under the minimum)Sources
    ConcernReleases and Host Versions4 of 5 raise it0 of 0 raise it (under the minimum)4 of 5 raise itSources
    ConcernLoad on a Shared Postgres3 of 3 raise it (under the minimum)0 of 0 raise it (under the minimum)3 of 3 raise it (under the minimum)Sources
    DisagreementDoes pgvector hold up at production scale?Holds up 3, Breaks down 3Holds up 0, Breaks down 0 (under the minimum)Holds up 3, Breaks down 3Sources
    Current readEvidence mix31 sources9 sources33 sourcesSources

    Fact checks

    GILD's checks of claims against official documentation, kept apart from the source counts.

    • One Database for Vectors and Data. pgvector stores your vectors with the rest of your data. A vector can have up to 16,000 dimensions. You can generate and store vectors in one language and query them in another. README: storing vectors, checked Nov 1, 2026
    • One Database for Vectors and Data. pgvector uses the Postgres write-ahead log (WAL), which allows for replication and point-in-time recovery. README: replication, checked Nov 1, 2026
    • One Database for Vectors and Data. pgvector is a Postgres extension you compile and install (supports Postgres 13+). You enable it with `CREATE EXTENSION vector` once in each database where you want to use it. README: installation, checked Nov 1, 2026
    • One Database for Vectors and Data. The pgvector README lists a client library for Python: pgvector-python. README: Python client, checked Nov 1, 2026
    • One Database for Vectors and Data. The pgvector README lists a client library for JavaScript and TypeScript: pgvector-node. README: JavaScript and TypeScript client, checked Nov 1, 2026
    • One Database for Vectors and Data. The pgvector README lists a client library for Java, Kotlin, Groovy and Scala: pgvector-java. README: Java client, checked Nov 1, 2026
    • One Database for Vectors and Data. On Linux and Mac, you compile and install pgvector (supports Postgres 13+) or install it with Docker, Homebrew, PGXN, APT, Yum, pkg, APK, or conda-forge. On Windows, you build it with nmake or install it with Docker or conda-forge. It comes preinstalled with Postgres.app and many hosted providers. README: install routes, checked Nov 1, 2026
    • One Database for Vectors and Data. Neon (Neon's own docs): pgvector is available on every Neon plan with no add-on or paid tier required, and Neon allows installing the previous pgvector version, one version behind the latest it supports. Neon docs: pgvector, checked Nov 1, 2026
    • One Database for Vectors and Data. Azure Database for PostgreSQL flexible server (Microsoft's own docs): pgvector must be added to the server's allowlist before it can be enabled, and the extension name is vector. Microsoft Learn: pgvector on Azure Database for PostgreSQL, checked Nov 1, 2026
    • One Database for Vectors and Data. Cloud SQL for PostgreSQL (Google's own docs) supports pgvector: PostgreSQL versions 13 and later support version 0.8.5, version 12 up to 0.7.4, and version 11 up to 0.5.1. Google Cloud: Cloud SQL extensions, checked Nov 1, 2026
    • One Database for Vectors and Data. Amazon RDS for PostgreSQL supports the pgvector extension (AWS What's New, May 3, 2023). It is available on all database instances in Amazon RDS running PostgreSQL 15.2 and higher in all AWS Regions, including the AWS GovCloud (US) Regions. AWS What's New: Amazon RDS supports pgvector, checked Nov 1, 2026
    • One Database for Vectors and Data. Supabase (Supabase's own docs): enable pgvector from the Database page in the Dashboard, under Extensions, by searching for `vector`. Supabase docs: pgvector, checked Nov 1, 2026
    • One Database for Vectors and Data. pgvector is free under the PostgreSQL License. Its LICENSE grants permission to use, copy, modify, and distribute the software and its documentation for any purpose, without fee, and without a written agreement, provided that the copyright notice and the license text appear in all copies. META.json names the license PostgreSQL. Managed hosting is priced by each host. LICENSE, checked Nov 1, 2026
    • Smaller Indexes. pgvector stores single-precision, half-precision, binary, and sparse vectors, with the halfvec, bit and sparsevec types for the last three. README: vector types, checked Nov 1, 2026
    • Recall and Speed in Production. pgvector supports two index types for approximate nearest neighbor search: HNSW, which creates a multilayer graph, and IVFFlat, which divides vectors into lists. Adding an index trades some recall for speed. README: index types, checked Nov 1, 2026
    • Recall and Speed in Production. pgvector supports L2 distance, inner product, cosine distance, L1 distance, Hamming distance, and Jaccard distance. Hamming and Jaccard distance apply to binary vectors. README: distance functions, checked Nov 1, 2026
    • Recall and Speed in Production. Starting with 0.8.0, you can enable iterative index scans, which automatically scan more of the index until enough results are found or the scan reaches `hnsw.max_scan_tuples` or `ivfflat.max_probes`. Iterative scans can use strict or relaxed ordering. README: iterative index scans, checked Nov 1, 2026
    • Recall and Speed in Production. By default pgvector performs exact nearest neighbor search, which provides perfect recall. README: exact search by default, checked Nov 1, 2026
    • Filters and the Query Planner. With approximate indexes, filtering is applied after the index is scanned. You will see different results for queries after adding an approximate index. README: filtering with approximate indexes, checked Nov 1, 2026
    • Scale Ceiling. HNSW indexes support `vector` up to 2,000 dimensions, `halfvec` up to 4,000 dimensions, `bit` up to 64,000 dimensions, and `sparsevec` up to 1,000 non-zero elements. IVFFlat indexes support `vector`, `halfvec` and `bit` at the same limits. README: indexed dimension limits, checked Nov 1, 2026
    • Scale Ceiling. A vector or half vector can have up to 16,000 dimensions, and a sparse vector up to 16,000 non-zero elements. README: stored vector limits, checked Nov 1, 2026
    • Scale Ceiling. HNSW query results are limited by the size of the dynamic candidate list (hnsw.ef_search), 40 by default, and NULL vectors (and zero vectors for cosine distance) are not indexed. README: HNSW result limit, checked Nov 1, 2026
    • Scale Ceiling. A non-partitioned table has a limit of 32 TB by default in Postgres. A partitioned table can have thousands of partitions of that size. README: table size limit, checked Nov 1, 2026
    • Index Builds, Vacuum and Inserts. HNSW has better query performance than IVFFlat (in terms of speed-recall tradeoff) but slower build times and uses more memory. Indexes build significantly faster when the graph fits into `maintenance_work_mem`. README: storage and index build, checked Nov 1, 2026
    • Releases and Host Versions. Version 0.8.7 (2026-10-01) fixed a buffer overflow with IVFFlat index build, and 0.8.3 (2026-06-17) fixed possible index corruption with HNSW vacuuming. The unreleased 0.9.0 drops support for Postgres 13 and 14. CHANGELOG, checked Nov 1, 2026