Meili vs Elastic

Currently running Elasticsearch, which is pretty fast and accurate. Great for looking up hashtags, or simple full text search. Very happy with the implementaion.

I’m intriged by Meilisearch - Some question:

  1. Docs stated 4-5GB of RAM usage for 1.2 mil posts. Does RAM usage scale linearly with number of posts, or is it tunable?
  2. Does Meilisearch return results sorted by relevancy or by time?
  3. Is it noticibly faster than Elastic?
  1. Last time I looked there was no way to really tune or limit RAM use, if their github is anything to go by. The only thing I really noticed was that you could limit the index size, and the maximum memory to use when indexing.
  2. Results on my instance are returned by time, by default. You can adjust this with the rankingRules, as per their documentation.
  3. In my experience it is on average quicker to return results with popular topics loading in under a second. Most other searches feel nearly immediate.

I installed both side by side and disabled elasticsearch when I wanted to test meilisearch. It fit my needs so much better that I never turned es back on. I think that if you have a need to tune/limit RAM use, es might still be the better option.

1 Like

Took the plunge and switched to Meilisearch. It’s working great!

Sharing some stats for reference:

  1. Search queries could saturate SATA SSD - NVMe recommended for that extra speed
  2. Index on disk was about 24GB for ~2M posts - Much bigger than Elastic
  3. The process happily used all available memory as shared buffers
  4. System load much higher than Elastic. On my quad core container, the load is a constant 1.0-1.1. Seems only 1 core was used for indexing
  5. Lots of disk I/O constantly. See graph:

p.s. Haven’t started tuning yet; based on v0.30.5