thehardwarestore.ai

where AI agents shop for the right tools

── 99427 repos indexed ── | filtered by tag: hybrid-search
qdrant/qdrant ★ 34859 2705 APPLICATION

Qdrant is a production-grade vector similarity search engine and database written in Rust. In production it stores points (dense, sparse, or multi-vector embeddings with optional JSON payloads), builds approximate nearest-neighbor indexes (HNSW, sparse inverted indexes, plain scans), and serves similarity search, recommendation, discovery, grouping, facet, and hybrid BM25+vector fusion queries over REST and gRPC APIs. It runs as a distributed cluster: collections are sharded and replicated across nodes with Raft-based consensus for cluster metadata, supporting resharding, snapshot transfer, and tunable consistency. An embedded variant (Qdrant Edge) ships with Python bindings and UniFFI for serverless and edge deployments. The workspace is modular: segment (vector storage, indexing, quantization), collection (shard management, replication, optimizers), shard (query planning, grouping, quota), storage (consensus, content manager, RBAC), api (REST/gRPC definitions), and common (universal I/O, hardware counters, data structures). The codebase demonstrates exceptional engineering: SIMD-optimized distance metrics (AVX2/SSE/NEON), GPU-accelerated HNSW via Vulkan compute shaders, advanced quantization (binary, product, scalar, TurboQuant with Hadamard rotation and P-square estimators), a universal I/O abstraction over mmap/io_uring/object stores, and a read-only/update-only storage separation pattern with live reload. The test suite is extensive: unit, integration, multi-node consensus (Python), e2e, and criterion benchmarks. Maintenance is very active with daily commits, a large CI matrix, and a mature release process. The main risks are inherent complexity: feature-flag proliferation, multiple SIMD backends, custom forks of tonic and raft-rs, and a combinatorial surface of index and storage variants. Overall this is one of the best-engineered open-source databases, with genuinely reusable crates (blobstore, posting_list, quantization, wal, universal_io) that could be extracted into standalone projects.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
garrytan/gbrain ★ 30792 4619 APPLICATION

GBrain is a personal knowledge management system designed as an AI agent memory layer. It provides a persistent knowledge base that runs as a 24/7 daemon for continuous ingestion, enrichment, and consolidation of information from various sources. The system features a CLI-first architecture with MCP (Model Context Protocol) support for AI agent integration, a web admin interface, and extensibility through skill packs. It uses a hybrid storage approach with PGLite for local/single-user deployments and Postgres+pgvector for shared/scale deployments, incorporating vector search, full-text search, and a self-wiring knowledge graph with typed edges. The system includes evaluation frameworks (BrainBench, takes-quality assessment), an advisor system for health recommendations, and automated maintenance cycles.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
paradedb/paradedb ★ 9402 478 APPLICATION

ParadeDB is a PostgreSQL extension that provides full-text search, vector search, and analytics directly within the database, eliminating the need for a separate search service. The core engine is `pg_search`, which implements a custom index access method (`paradedb`/`bm25`) using Tantivy for search indexing and DataFusion for analytic aggregations. It supports BM25 scoring, phrase/term/boolean queries, fuzzy matching, proximity search, hybrid search (combining full-text and vector), and a rich set of tokenizers (including jieba, ICU, Lindera, ngram). The extension integrates deeply with PostgreSQL's planner through custom scan nodes (BaseScan, AggregateScan, JoinScan, MPP) to push down search, aggregation, and join operations into the index. It also offers columnar storage via fast fields, parallel query execution, and WAL-level integration for crash safety. Architecturally, the system is a Rust library compiled as a shared library loaded by PostgreSQL, using the `pgrx` framework for FFI. Entry points include SQL functions for search (e.g., `paradedb.query`, `pdb.score`), DDL for index creation, and custom plan/exec hooks. Data flows: user SQL queries are intercepted by the planner, which decides whether to use a custom scan path; if so, Tantivy or DataFusion executes the search/aggregation/join, producing tuples that are optionally post-processed by PostgreSQL (e.g., heap fetches, visibility checks). The extension relies on external dependencies: Tantivy (forked for block storage), DataFusion (for aggregate execution), ICU (for Unicode tokenization), Lindera (for Japanese tokenization), and Apache Arrow (for columnar data exchange).

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
meilisearch/meilisearch ★ 59478 2720 APPLICATION

Meilisearch is a high-performance search engine written in Rust, organized as a workspace of crates. The core `milli` crate implements indexing, ranking, faceting, filtering, and vector search; the `meilisearch` crate exposes an HTTP API via actix-web. It supports typo-tolerant full-text search, facet filters, geo search, hybrid keyword/vector search, and federated search across remote instances. The system persists data in LMDB and provides dump/restore with backward-compatible readers for multiple dump versions. Beyond search, the repository contains data-intensive components: an indexing pipeline with incremental updates, facet tree structures, embedding generation with multiple providers (OpenAI, HuggingFace, Ollama, REST), and a task scheduler for asynchronous batch operations. Experimental features include chat completions, personalization, and dynamic search rules. The codebase is primarily an application, but includes research-grade algorithms for tokenization, typo tolerance, and vector similarity. Maintenance risks include dual indexing pipelines (old and new update paths), many experimental feature flags, and vendored external crates. The code is generally well-structured with reusable crates for dump handling, filter parsing, and HTTP client utilities.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
EverMind-AI/EverOS ★ 13408 930 APPLICATION

EverOS is a local-first, markdown-based memory framework for AI agents and chat applications. It ingests conversational sessions via a FastAPI REST API, extracts structured memories (episodes, atomic facts, agent cases, skills, user profiles) using LLMs, persists them as version-controllable Markdown files, and maintains derived search indexes in LanceDB (vector + BM25) and SQLite. The system provides a rich retrieval layer with keyword, vector, hybrid (RRF), and agentic (LLM-guided multi-round) search methods, plus a knowledge wiki feature. An Offline Memory Engine (OME) runs background strategies (reflection, clustering, extraction) on cron/idle/immediate triggers, and a cascade daemon watches the Markdown filesystem to reconcile indexes. The architecture is a layered monolith (entrypoints → service → memory → infrastructure) with cross-cutting components for LLM, embedding, rerank, tokenizer, and config. It ships with a CLI (Typer), a TUI demo (Textual), and extensive integration tests. While primarily an application, it includes a benchmark harness (LoCoMo, LongMemEval, EverMemBench) and evaluation fixtures, giving it a hybrid character with a strong research-oriented testing pipeline.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
dropbox/witchcraft ★ 517 30 APPLICATION

Witchcraft is a high-performance, local-first semantic search engine built in Rust. It indexes documents using a quantized T5 encoder (Google DeepMind's XTR model) and stores dense and sparse embeddings in SQLite, enabling hybrid retrieval with no external API dependencies or vector database. The project provides multiple interfaces: a CLI (`warp`), a Python package (`witchcraft`), a Node.js native module (`warp`), and an MCP server for AI agent integration. The flagship use case is "pickbrain" — a TUI application that ingests conversation transcripts from Pi, Claude Code, Codex, and Slack, then allows the user to search and resume sessions directly from the terminal. The architecture is modular: the core library (`src/lib.rs`) handles embedding, indexing, and search; `src/embedder.rs` wraps tokenization and T5 inference with sliding-window support; `src/db.rs` manages a SQLite database with WAL, FTS5, and batch operations. Performance-critical operations use custom CPU kernels in `src/fast_ops.rs` and the separate `fbgemm-rs` crate, which provides hand-tuned AVX2/NEON bf16 matrix multiplication and int8 quantized GEMM. Embedding compression via Haar wavelets and rANS entropy coding is provided by `src/packops.rs` and `src/rans64.rs`. The project also includes benchmark tools, a quantization tool, and safety netting for platform-specific quirks (OpenVINO memory leaks, macOS thread priorities). Overall, it is a well-crafted application demonstrating deep systems engineering, though its complexity and tight coupling of some components limit broad reuse.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
MemPalace/mempalace ★ 59403 7561 APPLICATION

MemPalace is a local-first, persistent memory system for AI agents. It stores and retrieves structured 'drawers' (memory chunks) organized into wings, rooms, and closets, with hybrid vector+BM25 search, a temporal knowledge graph, and agent coordination via a logstream. The system provides a CLI, an MCP server (both full and lightweight), and shell hooks for integration with Claude Code, Cursor, Codex, Antigravity, and DeepSeek Harness. It supports multiple storage backends (ChromaDB, SQLite exact, pgvector, Qdrant, Milvus, and a Rust native backend) and offers privacy-first operation with no mandatory API keys or internet connectivity. Architecturally, MemPalace is a modular Python package with optional Rust acceleration (PyO3). The core is split into several packages: `mempalace.cli` (fragment-exec-based CLI), `mempalace.mcp_server` (MCP tool server), `mempalace.palace` (palace operations and locks), `mempalace.searcher` (hybrid ranking and filters), and `mempalace.backends` (pluggable storage). The knowledge graph is SQLite-backed with temporal validity windows. A write-ahead log provides an audit trail. The system uses a hybrid logical clock (HLC) for causal ordering and a source adapter system for pluggable ingest. Although primarily an application, the project includes extensive benchmarking and model evaluation suites, giving it a mild hybrid character.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 7 reusable components found
RustyRAG/RustyRAG ★ 150 9 APPLICATION

RustyRAG is a production-grade RAG (Retrieval-Augmented Generation) API server written in Rust, designed for sub-200ms time-to-first-token. It provides a complete pipeline: document ingestion (PDF, DOCX, PPTX, XLSX, HTML, TXT, ZIP) via Docling with layout-aware extraction, OCR, table recognition, and optional vision-model image descriptions; hybrid search using Milvus (dense HNSW vectors + BM25 sparse with Reciprocal Rank Fusion); cross-encoder reranking via Jina Reranker v3; and streaming LLM responses from Groq or Cerebras. The server exposes REST endpoints for document upload, semantic search, RAG chat (both full response and SSE streaming), collection backup, and an evaluation benchmark runner. The architecture follows a clean layered pattern: Actix-web handlers in `src/handlers/` orchestrate business logic, services in `src/services/` encapsulate external API clients (Milvus, embeddings, reranker, Docling, LLM), and schemas in `src/schemas/` define request/response types with OpenAPI annotations via utoipa. The Rust binary is a single self-contained server; GPU-accelerated sidecars (embeddings, reranker, Docling) run as Docker containers. Configuration is environment-driven with sensible defaults. Key entry points are the HTTP API at `/api/v1/` (Swagger UI at `/swagger-ui/`) and a built-in chat UI at `/static/chat.html`. The primary data flow for a RAG query is: embed user query → fire concurrent dense and BM25 searches in Milvus → merge via RRF → rerank top candidates → build context prompt → stream LLM response with source citations and timing metadata. The system is designed for low latency and high accuracy, with benchmark results showing 94.5% pass rate with reranker at ~279ms TTFT.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
SeekStorm/SeekStorm ★ 1909 69 APPLICATION

SeekStorm is a high-performance search engine library and multi-tenancy server implemented in Rust. It provides both lexical (BM25F with proximity) and vector (ANN with IVF clustering and scalar/Turbo quantization) search capabilities, supporting real-time indexing, faceted search, spelling correction, query auto-completion, highlighting, and hybrid result fusion via RRF. The architecture consists of a core library (`seekstorm`), a RESTful server (`seekstorm_server`) with embedded web UI, and a Rust client SDK (`seekstorm_client`). The server uses memory-mapped files for persistence, supports per-index configuration of tokenizers, stemmers, stop words, and compression, and enforces multi-tenant isolation via API keys with resource quotas. Search performance is enhanced with SIMD acceleration (AVX2/NEON) for posting list intersection, vector quantization, and distance computations. The codebase is well-tested with extensive integration and consistency tests, and follows an explicit commit model for durability.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Azure-Samples/rag-postgres-openai-python ★ 505 1056 APPLICATION

This repository provides a production-ready, full-stack Retrieval-Augmented Generation (RAG) chat application built with Python FastAPI and React TypeScript. It demonstrates how to use Azure OpenAI (or OpenAI.com, or Ollama) to answer questions about data stored in Azure Database for PostgreSQL with the pgvector extension. The system supports both a simple RAG flow (embedding + direct search) and an advanced flow that uses OpenAI function calling to rewrite queries and apply column filters (brand, price). It features hybrid search combining full-text search and vector similarity via Reciprocal Rank Fusion. The backend is a monolith serving API endpoints and a React frontend, designed for deployment to Azure Container Apps using the Azure Developer CLI. The codebase includes comprehensive unit tests, end-to-end tests with Playwright, evaluation scripts, load testing with locust, and safety evaluation using Azure AI Red Teaming. The architecture is cleanly separated into reusable modules, making it a solid reference architecture for building RAG applications on Azure.

RATING: 8.5/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
infiniflow/infinity ★ 4701 442 APPLICATION

Infinity is a high-performance AI-native vector database designed for LLM applications, offering hybrid search over dense embeddings, sparse embeddings, tensors, and full-text. Its architecture is a distributed C++ core with a modular planner/executor, multiple index types (HNSW, IVF, BMP, DiskANN, EMVB, PLAID, full-text), and a transaction system with WAL and checkpointing. The database exposes a SQL interface, a Thrift RPC API, an HTTP API, and native SDKs for Python, Go, and C++. It also includes a web GUI (Next.js) for administration. The codebase is heavily optimized with SIMD instructions, custom analyzers for multiple languages, and advanced query optimization (fast rough filters, result caching). While the repository is actively maintained with a comprehensive test suite and CI/CD pipeline, there is some technical drift from deprecated KNN implementations and disabled unit tests, and the reliance on C++20 modules may introduce compiler compatibility risks.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: