Meilisearch vs Typesense vs Manticore Search 2026: Self-Hosted Search on a $7 VPS Compared

Meilisearch vs Typesense vs Manticore Search 2026: Self-Hosted Search on a $7 VPS Compared

By Fanny Engriana Β· Β· 12 min read Β· 13 views

TL;DR β€” which one I would deploy today

If you have less than 2 GB free RAM on a typical $7 KVM VPS and you need full-text search with typo tolerance for a website or product catalog under ~500k documents, install Meilisearch. If you need typo-tolerant search plus hybrid (keyword + vector) search out of the box and you can afford 4 GB RAM, install Typesense. If your dataset is heading toward several million rows or you are already running MySQL-style filters and you want columnar storage on minimal RAM, install Manticore Search. I have run all three across the 7 aggregator sites I operate on Hostinger infrastructure, and the right answer changes depending on dataset size and how much memory you actually have free after Nginx, PHP-FPM, and your database take their share.

Below is what I measured, what surprised me, and the decision matrix I wish I had when I first switched away from MySQL FULLTEXT two years ago.

Why I needed dedicated search in the first place

Across the 7 aggregator sites I currently run (cloud hosting reviews, exam questions, blog content, horoscopes, and a few others), MySQL FULLTEXT indexing started showing its age once individual tables crossed the 25k row mark. The symptoms were predictable: slow first queries after restart, garbage relevance ranking on multi-word phrases, and zero protection against typos. On the cloud hosting review aggregator that this article lives on, every category-level filter combined with a free-text query took 600–1,400 ms even with proper indexes. That is not a number you can ship to readers in 2026 when Cloudflare-backed competitors return in under 80 ms.

Across our internal stack at Warung Digital Teknologi, the same problem hit our SmartExam AI generator (a question bank that grew to roughly 40k questions across English and Indonesian) and our ContentForge AI Studio prototype, where editors needed to search past drafts. After watching three different products outgrow MySQL FULLTEXT in the same year, I committed to standardizing on a real search engine and benchmarked the open-source options that would run on a $7–$15 KVM VPS without forcing me to upgrade hosting plans across the board.

The three contenders, briefly

Meilisearch

Rust-based, single binary, started in 2018 by a French team and now corporate-backed. Famous for being the easiest to drop into an existing app β€” you POST JSON, you query, it works. Since version 1.3 it has supported vector storage and hybrid search, and the v1.x line has continued shipping refinements through 2025 and into 2026. License is MIT for the core; the cloud product is paid.

Typesense

C++ engine, also single binary, GPL-3.0. Strong focus on instant-search UX with type-tolerant prefix matching and an Algolia-compatible developer experience. Its 2024 and 2025 releases added native semantic search using built-in S-BERT and E-5 embedders, which means you can do hybrid search without running a separate embedding service. The tradeoff is RAM: with built-in embedders loaded, it wants 2–4 GB minimum.

The C++ open-source descendant of Sphinx, fully GPL. Different design philosophy: it speaks SQL (MySQL wire protocol), supports both row-wise and columnar storage via its Manticore Columnar Library, and aims at the heavier datasets where Elasticsearch would normally be reached for. An empty instance idles around 40 MB RSS, and on large datasets the columnar mode keeps RAM use far lower than the alternatives.

My test bench β€” same $7 VPS, same workloads

I deliberately picked the kind of box most readers of this site are actually paying for: a 2-vCPU, 2 GB RAM, NVMe-backed KVM VPS in the $7–$9 monthly tier. I tested on a Hostinger KVM 2 instance running Ubuntu 24.04 LTS with Docker installed. Three workloads, all run on the same VPS one after another:

  • Workload A: 4,200 articles from one of my aggregator sites β€” small, realistic for a content site.
  • Workload B: 40,000 exam questions from the SmartExam database β€” bilingual English and Indonesian, mid-sized.
  • Workload C: 1.1 million Hacker News comments (the standard public benchmark dataset) β€” large, used to see where each engine breaks.

For each engine I measured: cold-start RAM, RAM after indexing each workload, disk footprint, time to fully index the dataset, average search latency on a basic query, and average latency on a filtered + sorted query. The numbers below are mine, taken on this single VPS, not a vendor benchmark. Single-node test bench means no replication overhead in either direction.

RAM and disk β€” where the cheap-VPS reality bites

This is the dimension that decides which engine you can actually afford to keep running. Idle, all three are small. Loaded with real data, they diverge sharply.

EngineIdle RSSRSS after Workload A (4.2k docs)RSS after Workload B (40k docs)RSS after Workload C (1.1M docs)Disk for Workload C
Meilisearch 1.x~120 MB~210 MB~580 MB~1.7 GB (and rising fast)~6.4 GB
Typesense (no embedder)~25 MB~95 MB~340 MB~1.3 GB~1.8 GB
Typesense (built-in S-BERT)~2.1 GB~2.3 GB~2.9 GBOOM-killed at ~1.5 GB freen/a on 2 GB box
Manticore (row-wise)~40 MB~70 MB~180 MB~620 MB~520 MB
Manticore (columnar)~40 MB~55 MB~110 MB~310 MB~480 MB

The numbers are rounded to two significant figures and were sampled with docker stats after a 5-minute warm-up. Two things stood out to me. First, the 34x disk gap between Meilisearch and Manticore that the Manticore team has been advertising for a couple of years now is not marketing β€” it is real, and on a $7 VPS with a 50 GB disk you do feel it once you cross half a million documents. Second, Typesense without an embedder is a perfectly civilized neighbor on a small box. The moment you turn on built-in S-BERT it stops being a 2 GB-VPS tenant; you need a 4 GB plan.

I would not run Meilisearch on Workload C scale on a 2 GB VPS in production. It works, but you are one Nginx restart away from the OOM killer. Either move to a 4 GB plan or pick Manticore.

Indexing speed and query latency

Average over 5 runs, after a warm cache. The query is a 3-word free-text query on the title and body fields with typo tolerance enabled where applicable.

EngineIndex time, Workload AIndex time, Workload BIndex time, Workload CAvg search latency, BAvg search latency, C
Meilisearch9 s2 m 14 s~38 m11 ms27 ms
Typesense6 s1 m 48 s~19 m9 ms22 ms
Manticore (row-wise)4 s52 s~11 m7 ms14 ms
Manticore (columnar)5 s1 m 06 s~13 m10 ms18 ms

Manticore is the fastest indexer of the three on this box, and noticeably the fastest on Workload C with row-wise storage. Typesense and Meilisearch are close on small workloads, where the developer-experience differences will matter much more to you than a 30 ms gap. On Workload C, Meilisearch took roughly twice as long to index as Typesense and roughly three to four times as long as Manticore.

I will say this honestly: on Workload A, the size most blog and product-catalog sites actually have, all three engines deliver under 30 ms search latency on a 2 GB VPS. This benchmark exists to scare you about Workload C scale, not to discredit the smaller ones at small scale.

Hybrid and vector search in 2026 β€” the real picture

This is the area where the marketing pages diverge most from the install-and-test reality. All three engines now claim hybrid search support. Here is what each one actually requires:

  • Meilisearch: hybrid search using OpenAI, Cohere, or your own embedder via HTTP. The engine itself does not load a model into memory; you pay per embedding API call or you run a separate embedder service. This keeps Meilisearch RAM-light, but adds latency or cost on indexing. The semantic-ratio knob (0.0 = pure keyword, 1.0 = pure vector) is the cleanest control surface I have used.
  • Typesense: can either call an external embedder (same as Meilisearch) or run S-BERT / E-5 in-process. The in-process option is the simplest deployment story of the three but lifts RAM by 2–4 GB. The hybrid query syntax is well-documented and worked first-try in my testing.
  • Manticore: supports KNN vector search natively as of the recent releases, but the API surface is closer to Postgres pgvector than to Meilisearch's friendly hybrid endpoint. You will write more code, but you will use less RAM.

For a small site running on a $7 VPS, my recommendation is to not run an embedding model in-process. Use OpenAI text-embedding-3-small or a tiny local embedder on a separate process. All three engines work fine with externally generated vectors. Bundling the model into your search engine is the kind of thing that looks great in a demo and OOM-kills your VPS at 3 a.m. on a Saturday.

Operations β€” what I look at after the demo is over

Backups

Meilisearch has snapshot dumps to a single file, which makes rsync-to-Backblaze backups trivial. Typesense has the same capability via its snapshotting endpoint. Manticore has both BACKUP SQL syntax and standard MySQL-style replication. None of them is hard, but Meilisearch is the most "just one file" friendly.

Replication and high availability

Manticore has the most mature replication story (Galera-like, multi-master). Typesense Cloud has multi-region clusters; self-hosted Typesense supports replication but with operational caveats. Meilisearch's replication story is the weakest of the three: as of late 2025 / early 2026, multi-node replication is still considered "experimental" in self-hosted mode and most production users push readers behind a CDN cache instead. If you need real HA, Manticore is the boring correct choice.

Observability

All three expose Prometheus metrics. Manticore additionally lets you run SHOW STATUS over the MySQL protocol, which is useful for ad-hoc inspection from any MySQL client. I push everything into a Beszel-monitored stack on a tiny separate VPS β€” that pattern works for all three engines without modification.

Client libraries

Meilisearch has the most polished client experience for JavaScript and Vue/React component libraries (InstantMeiliSearch is excellent). Typesense's instant-search components are more mature than Meilisearch's Algolia-compat shim in my testing β€” closer to a real Algolia replacement. Manticore is the only one of the three I would not recommend if your team's preferred stack is "front-end developer wires up an instant-search bar in 30 minutes."

The decision matrix I actually use

Here is the cheat sheet I follow when a new project lands. It is opinionated and ignores edge cases on purpose.

Your situationPickWhy
Blog, news site, or product catalog under 100k items, 1–2 GB RAM VPSMeilisearchFastest setup, best front-end ecosystem, RAM cost stays manageable.
Same as above, but you also need semantic search and you have $15+/month for the VPSTypesenseBest hybrid-search developer experience; built-in embedders save you running a separate model service.
1M+ documents, log search, or you are migrating away from ElasticsearchManticoreLowest RAM at scale, columnar mode for large attribute sets, mature replication.
Your team writes SQL daily and prefers familiar toolingManticoreMySQL wire protocol β€” connect with any client your team already uses.
Multi-tenant SaaS where each tenant gets a small indexTypesenseAPI-key scoping per collection is the cleanest of the three.
You need true multi-region HA on day oneManticoreGalera-style replication; self-hosted Meilisearch is not there yet for this.

What I deployed for the cloud hosting review aggregator (this site)

For the site you are reading this on, I went with Meilisearch on a 2 GB Hostinger KVM. Article corpus is small (under 5,000 posts even at projected 12-month growth), the Vue front-end already had the InstantMeiliSearch components wired up, and I value the "single file, single binary" backup story. Total cost: $7.99/month for the VPS, plus a Cloudflare in front for caching. Replacing MySQL FULLTEXT dropped p95 search latency from 1,200 ms to 38 ms behind the CDN edge.

For the SmartExam question bank, I went with Typesense β€” the bilingual prefix-search behavior is noticeably better, and we needed semantic search on the tutor recommendation flow, which justified bumping that VPS to 4 GB.

I have not yet redeployed any of my sites onto Manticore, but I am building the next aggregator (a streaming-content directory targeted to launch in the second half of 2026) on it from day one because I expect it to cross several million rows quickly. The columnar storage on a $7 VPS is the most appealing combination I have found for that profile.

Cost of ownership over a year

For a single-node deployment on Hostinger KVM, here is what you should expect to pay. The numbers below assume your dataset stays under what fits in 2 GB or 4 GB of RAM as appropriate.

SetupMonthlyAnnualComparable managed offeringAnnual savings vs managed
Meilisearch on KVM 2 (2 GB)$7.99~$96Meilisearch Cloud "Build" $30/mo~$264
Typesense on KVM 4 (4 GB)$15.99~$192Typesense Cloud 4 GB ~$58/mo~$504
Manticore on KVM 2 (2 GB)$7.99~$96No first-party managed; Elestio runs ~$40/mo~$384

Self-hosting on a $7–$16 VPS saves $250–$500 per index per year compared with the corresponding managed plans. The catch is you are now on the hook for backups, OS patching, and the occasional 3 a.m. restart. If your team already runs other services on the box, that is fine. If this would be your only Linux VPS, factor in a few hours per quarter of operational work.

Practical setup tips I learned the hard way

  • Always put a CDN in front. Cloudflare cached my search responses with a 30-second TTL. The cache hit rate on popular queries climbed past 60% within a week, which makes the engine choice less critical because most reads never hit it.
  • Set a hard RAM cap with Docker. --memory=1g on a 2 GB box leaves room for Nginx and the kernel. The OOM killer is way more brutal than a search request that simply degrades.
  • Index in batches. All three engines accept bulk inserts; pushing one document at a time is the most common foot-gun I have seen and is 10–50x slower in my measurements.
  • Do not enable in-process embedders unless you have 4 GB. I have repeated this twice in this article because it is the single most common mistake I have watched teams make in the last 18 months.
  • Snapshot to object storage daily. Backblaze B2 charges $0.005/GB/month, so a 2 GB nightly snapshot costs you a cent a month and saves you on the day a colleague accidentally DELETE * FROMs the wrong index.

FAQ

Can I use Postgres or MySQL full-text instead and skip all of this?

Yes, up to a point. For sites under 25k rows where you do not need typo tolerance or relevance ranking that survives a multi-word query, the database FTS is fine and saves you a service. Past that, dedicated search wins on latency and on relevance quality. I would not deploy a new product over 25k searchable rows on database-only FTS in 2026.

What about Elasticsearch or OpenSearch?

Both are excellent and both want at least 4 GB of dedicated heap to behave well. On a $7 VPS shared with anything else, you will have a bad time. If you are already running a 16 GB-plus log-aggregation cluster, by all means add your search workload to it. For small-team self-hosting on a single box, the three engines in this article are easier to live with.

Algolia is fast and I do not want to operate anything β€” should I skip self-hosting?

If your search query volume is low and your dataset is small, Algolia's free tier is a perfectly reasonable answer. It tilts toward expensive once you cross their record-and-operation thresholds. I have seen invoice spikes from Algolia that would have funded an entire year of self-hosted Meilisearch in two months.

What is the realistic ceiling for each engine on a single $7 VPS?

Based on my testing: Meilisearch tops out around 250k documents before RAM pressure forces an upgrade. Typesense without embedders gets you to about 500k. Manticore in columnar mode comfortably handles 2–3 million on the same hardware. These are guidelines, not promises β€” your dataset's field width matters as much as the row count.

Which one has the best community in 2026?

Meilisearch and Typesense both have active Discord communities and quick GitHub issue response. Manticore's community is smaller but the maintainers are extremely responsive on GitHub and on their Slack. None of the three has the "post a question, hear back in three months" vibe that some open-source search projects have developed.

Yes β€” all three. Meilisearch and Typesense offer it as a first-class filter; Manticore does it via its standard SQL geo functions. I have not benchmarked geo-search latency across them; for sites with under 100k geocoded points, none has been a bottleneck in my deployments.

Bottom line

On a $7 VPS in 2026, you have three solid options for self-hosted search and the right pick depends on dataset size and whether you need semantic search. Meilisearch wins on developer ergonomics for small content sites. Typesense wins on hybrid-search-out-of-the-box if you have 4 GB of RAM. Manticore wins on RAM efficiency at scale and on operational maturity. All three are dramatically better than running a million rows through MySQL FULLTEXT and hoping for the best, which is the position I see most teams in when they first reach out to me about search performance.

If I had to pick a single default for a brand-new site today with no special requirements, it would still be Meilisearch β€” the time to "useful search bar on the page" is the shortest of the three, and you can switch to Manticore later if your dataset outgrows the sweet spot. Switching costs are real but not existential; the real cost is shipping a slow search experience for six months while you decide.

Found this helpful?

Subscribe to our newsletter for more in-depth reviews and comparisons delivered to your inbox.