On-disk support for HNSW indexes with pg_embedding

Neon's pg_embedding extension, which enables graph-based vector similarity search in Postgres using the Hierarchical Navigable Small World (HNSW) algorithm (HNSW), now persists HNSW indexes to disk. In the previous pg_embedding version (0.1.0 and earlier), indexes resided in memory.

Additionally, pg_embedding now supports cosine and Manhattan distance metrics.

  • Cosine distance

    CREATE INDEX ON documents USING hnsw(embedding ann_cos_ops) WITH (dims=3, m=3, efconstruction=5, efsearch=5);
    SELECT id FROM documents ORDER BY embedding <=> array[3,3,3] LIMIT 1;
  • Manhattan distance

    CREATE INDEX ON documents USING hnsw(embedding ann_manhattan_ops) WITH (dims=3, m=3, efconstruction=5, efsearch=5);
    SELECT id FROM documents ORDER BY embedding <~> array[3,3,3] LIMIT 1;

Also, be sure to check out the new Neon AI page on our website, and our docs, which include links to new AI example applications built with Neon Serverless Postgres.