Search Engines

Search privately with self-hosted search engines and metasearch tools, alternatives to Google.

62 self-hosted apps · 491 comparisons

All search engines apps

Last reviewed Aug 26, 2026 · 455 words

SearXNG can replace Google in your browser this afternoon; nearly everything else in this category is infrastructure for software you are writing. Telling those two apart is most of the buying decision, because "a search engine for me" and "a search engine for my app's users" share a shelf label and almost nothing else.

How to choose a search engine

Ask who is doing the searching. If it's you, in a browser: SearXNG aggregates results from 70+ engines without tracking or profiling, and Vane (formerly Perplexica) layers AI answers with cited sources on top of it — at the cost of needing an LLM backend and 1 GB of RAM. If it's your application's users typing into a search box: Meilisearch, Typesense, ZincSearch, and Elasticsearch index your data and rank results by relevance. If it's your code doing semantic retrieval for RAG or recommendations: Qdrant, Milvus, and Weaviate store vector embeddings and answer similarity queries.

The second axis is resources, and the spread is wider than anywhere else in this directory: Sonic runs in 32 MB, Meilisearch in 256 MB, Elasticsearch wants 2 GB before you load data, and Milvus asks for 4 GB. Third, keyword versus semantic: classic full-text search covers most needs, and although hybrid engines exist (Typesense and Weaviate both handle vectors alongside text), starting with one job done well beats starting with two done adequately.

Where to start

SearXNG is the immediate win: one container, 256 MB, and a private metasearch page for the whole household. Its single sharp edge is that you must replace the default secret_key in settings.yml before exposing it anywhere. Meilisearch is the app-search default: a single Rust binary with typo tolerance and faceting out of the box, and you will have a working search API in an hour where Elasticsearch demands a week of tuning — reach for Elasticsearch only when you need its aggregations, ecosystem, and horizontal scale. Qdrant is the vector pick: fast, 512 MB minimum, REST and gRPC APIs, and simpler to operate than Milvus's distributed architecture unless you genuinely have billions of vectors.

The trap: deploying Elasticsearch by reflex

Elasticsearch is the name everyone knows, so it gets deployed for 10,000-document workloads that Meilisearch would serve faster on a tenth of the hardware — and its Elastic-2.0 license is not OSI-approved open source, which matters to some self-hosters. Size the tool to the corpus, not the résumé.

Default for a first-timer: SearXNG. It is the only tool here that improves an ordinary day rather than a future project, and it costs one evening and 256 MB to find out.

Curated picks

Search Engines comparisons

491 head-to-head comparisons in this category.

See all comparisons →