Hybrid BM25-powered search & DB management toolkit for PostgreSQL/pgvector with LangChain integration
git clone https://github.com/BWKBH/postgresql_management_langchain_pgvector.git
cd postgresql_management_langchain_pgvector
pip install -e .
pip install -r requirements.txtThis project depends on the following PostgreSQL extensions:
- pgvector: for vector similarity search in PostgreSQL
- pg_search (Casecommons): full-text search functionality using PostgreSQL text search features
After installing the extensions, connect to your PostgreSQL instance and run:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_search;- Seamless integration with PostgreSQL + pgvector
- Hybrid search support with BM25 + vector (Reciprocal Rank Fusion)
- Support for HNSW indexing and distance strategy configuration
- Easy control over DB schema, index creation, and deletion
- LangChain-compatible retriever for use in RAG pipelines
from langchain_pgvector_searchkit import PGVectorController
controller = PGVectorController(...)
await controller.set_pgvector(...)
retriever = controller.vector_store.as_retriever()
docs = await retriever.ainvoke("한국어 문법에 대해 알려줘", k=4)See more usage in test_pgvector_controller.ipynb.
langchain_pgvector_searchkit/
├── service/ # PGVectorController and DB management
├── db/ # Hybrid BM25 logic and vector store overrides
└── rrf/ # RRF ranking functions