MCPSERV.CLUB
ZincSearch

ZincSearch

Self-Hosted

Lightweight full‑text search engine for Elasticsearch users

Stale(68)
17.6kstars
0views
Updated May 19, 2025
ZincSearch screenshot 1
1 / 5

Overview

Discover what makes ZincSearch powerful

ZincSearch is a lightweight, self‑hosted full‑text search engine engineered to replace Elasticsearch for application‑search workloads. Built in Go, it bundles a single statically compiled binary that runs on any platform with minimal dependencies. The core indexing engine is powered by **Bluge**, a pure‑Go library inspired by Lucene, which provides efficient inverted index structures while keeping memory footprints low. ZincSearch exposes a subset of the Elasticsearch REST API, enabling seamless ingestion through single‑document and bulk endpoints without requiring any client SDK changes. The search experience is delivered via a Vue‑based web UI that offers query building, aggregation visualization, and user management.

Full‑text indexing

Schema‑less design

Elasticsearch‑compatible APIs

Aggregation support

Overview

ZincSearch is a lightweight, self‑hosted full‑text search engine engineered to replace Elasticsearch for application‑search workloads. Built in Go, it bundles a single statically compiled binary that runs on any platform with minimal dependencies. The core indexing engine is powered by Bluge, a pure‑Go library inspired by Lucene, which provides efficient inverted index structures while keeping memory footprints low. ZincSearch exposes a subset of the Elasticsearch REST API, enabling seamless ingestion through single‑document and bulk endpoints without requiring any client SDK changes. The search experience is delivered via a Vue‑based web UI that offers query building, aggregation visualization, and user management.

Key Features

  • Full‑text indexing with tokenization, stemming, and n‑gram support out of the box.
  • Schema‑less design – documents in the same index may contain arbitrary fields; field types are inferred on first write.
  • Elasticsearch‑compatible APIs for ingestion and search, making it a drop‑in replacement for existing pipelines.
  • Aggregation support (terms, histograms, date histograms) comparable to Elasticsearch’s aggregation framework.
  • Authentication & RBAC built‑in, with support for LDAP and OAuth through extensions.
  • Disk‑backed storage; indexes are persisted to local file system, enabling fast cold starts.
  • Zero‑config – a single binary with no external services; everything is configurable via environment variables or a JSON config file.

Technical Stack

LayerTechnology
RuntimeGo 1.22 (static binary)
IndexingBluge (inverted index, compression)
HTTP APIStandard Go net/http with Gorilla Mux routing
Web UIVue 3 + Vite, Axios for API calls
AuthenticationJWT + optional LDAP/OAuth adapters
StorageFile system (index files), optional S3‑compatible object stores via plugin
TestingGo test + Codecov integration

The choice of Go ensures low runtime overhead, fast startup times (under 5 s for a fresh index), and excellent cross‑platform binaries. Bluge’s compact on‑disk format keeps the memory usage below 1 GB for typical workloads, making ZincSearch ideal for resource‑constrained environments.

Core Capabilities & APIs

  • Ingestion: PUT /index/_doc/{id} for single documents and POST /index/_bulk with newline‑delimited JSON.
  • Search: Standard GET /index/_search with query DSL compatible with Elasticsearch’s Query DSL (bool, match, term, range).
  • Aggregations: aggs field supports terms, histograms, date_histogram, and percentile ranks.
  • Index Management: PUT /index to create an index, DELETE /index to drop it.
  • Snapshot/Restore: REST endpoints for creating index snapshots and restoring them from local or remote storage.
  • Webhooks: Custom webhook triggers on document creation, update, or deletion for real‑time integrations.
  • Plugin System: Go plugins can extend the server with new authentication providers, custom analyzers, or external storage backends.

Deployment & Infrastructure

ZincSearch is designed for easy self‑hosting:

  • Containerization: Official Docker images are available; a single container runs the server and UI.
  • High Availability: Multiple instances can be run behind a load balancer; the index is shared via NFS or S3‑compatible object storage for read replicas.
  • Scalability: Benchmarks show linear scaling with additional CPU cores; memory consumption grows linearly with index size.
  • Resource Footprint: A typical 10 GB dataset runs comfortably on a 2‑core, 4 GB RAM VM.
  • Monitoring: Prometheus metrics are exposed on /metrics; integration with Grafana dashboards is straightforward.

Integration & Extensibility

Developers can hook ZincSearch into existing stacks with minimal friction:

  • SDK Compatibility: Existing Elasticsearch clients (Python, Java, Node) work without modification.
  • Webhooks & Callbacks: Trigger external services on data changes, enabling real‑time analytics pipelines.
  • Custom Analyzers: Extend the default analyzer set by registering Go plugins that implement the Analyzer interface.
  • UI Customization: The Vue UI is open source; developers can fork and add custom panels or modify query builders.
  • OpenTelemetry: ZincSearch exposes trace data compatible with OpenTelemetry collectors for distributed tracing.

Developer Experience

  • Documentation: Comprehensive online docs (https://zincsearch-docs.zinc.dev/) cover API reference, configuration, and migration guides.
  • Community: Active GitHub discussions, a public Slack channel, and regular releases (semantic versioning).
  • Testing: High test coverage (~90%) with Codecov badges; CI pipelines ensure stability before every release.
  • Configuration: Environment‑driven settings (e.g., ZINC_INDEX_DIR, ZINC_AUTH_ENABLED) allow zero‑touch deployments on Kubernetes or bare metal.
  • Extensibility: The plugin architecture encourages community contributions; several authentication and storage plugins already exist.

Use Cases

  1. App Search – Embed a search bar in SaaS products or internal tools

Open SourceReady to get started?

Join the community and start self-hosting ZincSearch today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
NOASSERTION
Stars
17.6k
Technical Specs
Pricing
Open Source
Database
None
Docker
Official
Supported OS
LinuxWindowsmacOSDocker
Author
zincsearch
zincsearch
Last Updated
May 19, 2025