Sign inSign up

garapadev/postgres-postgis-pgvector

By garapadev

β€’Updated about 1 year ago

LIMIT 10;

Image
Data science
Databases & storage
1

50K+

garapadev/postgres-postgis-pgvector repository overview

⁠PostgreSQL + PostGIS + pgvector

🐘 PostgreSQL + 🌍 PostGIS + πŸ” pgvector = Complete database for geospatial and AI applications

⁠Quick Start

# PostgreSQL 15 (Recommended)
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=password garapadev/postgres-postgis-pgvector:15-stable

# PostgreSQL 16 (Latest)
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=password garapadev/postgres-postgis-pgvector:latest

⁠What's Included

  • PostgreSQL 15.13/16.6 - Robust SQL database
  • PostGIS 3.4.2 - Spatial data types and functions
  • pgvector 0.7.4 - Vector similarity search for AI/ML
  • Additional extensions: fuzzystrmatch, postgis_tiger_geocoder, postgis_topology

⁠Available Tags

  • 15-stable (902MB) - Production ready
  • 15-optimized (902MB) - Optimized build
  • 15-slim (902MB) - Compact version
  • 15 (2.91GB) - Full version
⁠PostgreSQL 16
  • latest (2.82GB) - Most recent
  • 16-optimized (808MB) - Optimized build
  • stable (2.82GB) - Stable version

⁠Use Cases

β πŸ€– AI/ML Applications
-- Vector similarity search
CREATE TABLE documents (
    id SERIAL PRIMARY KEY,
    content TEXT,
    embedding VECTOR(1536)
);

SELECT content FROM documents 
ORDER BY embedding <=> '[0.1,0.2,...]'::vector 
LIMIT 5;
β πŸ—ΊοΈ Geospatial Applications
-- Spatial queries
CREATE TABLE locations (
    id SERIAL PRIMARY KEY,
    name TEXT,
    geom GEOMETRY(POINT, 4326)
);

SELECT name FROM locations 
WHERE ST_DWithin(geom::geography, ST_MakePoint(-46.6, -23.5)::geography, 1000);
β πŸ”„ Hybrid Applications
-- Combine spatial + vector search
SELECT name, 
    ST_Distance(geom::geography, point::geography) as distance,
    1 - (embedding <=> query_vector) as similarity
FROM places 
WHERE ST_DWithin(geom::geography, point::geography, 5000)
ORDER BY embedding <=> query_vector
LIMIT 10;

⁠Docker Compose

version: '3.8'
services:
  postgres:
    image: garapadev/postgres-postgis-pgvector:15-stable
    environment:
      POSTGRES_PASSWORD: your_password
      POSTGRES_DB: myapp
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

⁠Performance Tips

  • Use optimized tags (-optimized, -slim, -stable) for production
  • Configure work_mem for vector operations: SET work_mem = '256MB'
  • Create appropriate indexes: CREATE INDEX ON table USING ivfflat (embedding vector_cosine_ops)

⁠Testing Extensions

-- Check versions
SELECT version();
SELECT PostGIS_Full_Version();
\dx

-- Test PostGIS
SELECT ST_AsText(ST_MakePoint(-46.6333, -23.5505));

-- Test pgvector
SELECT '[1,2,3]'::vector <-> '[4,5,6]'::vector;

Perfect for:

  • RAG applications
  • Recommendation systems
  • GIS applications
  • Location-based services
  • Spatial analysis
  • Vector databases
  • AI/ML applications

GitHub: https://github.com/garapadev/postgres-postgis-pgvector⁠ Issues: https://github.com/garapadev/postgres-postgis-pgvector/issues⁠

Tag summary

Content type

Image

Digest

sha256:e54a985d7…

Size

592.6 MB

Last updated

about 1 year ago

docker pull garapadev/postgres-postgis-pgvector