What does HackerNews think of meilisearch?
A lightning-fast search engine that fits effortlessly into your apps, websites, and workflow.
Initially my use case was to get a weekly email of my newly added bookmarks as I often bookmarked things on my phone to read them later. As it's the case with bookmarks, I never went back to read them, so the email reminder works well for me.
As a side effect of having that functionality, I now have full-text search (With https://github.com/meilisearch/meilisearch) and a plain text archive of all my bookmarks.
Comparison to elasticsearch: https://docs.meilisearch.com/learn/what_is_meilisearch/compa...
Github: https://github.com/meilisearch/meilisearch
Website: https://www.meilisearch.com/
Apart from Sonic, I also found Tantivy [1] and Meilisearch [2]... all delightfully made in Rust. My favorite, and the closest one to ElasticSearch (for its features) is probably Tantivy.
I'd recommend anyone to check up this three projects and choose on what best fits your needs... it's awesome to see that more projects are becoming available by the day!
(edited to add vector search category and add manticore)
When looking at OSS search projects, it's nice to have a rough ideas of the different use cases, here is the list I have in mind:
- user facing search (think algolia): elasticsearch[1]/opensearch[2], meilisearch[3], typesense[4]
- enterprise search: elasticsearch/opensearch
- log search: elasticsearch/opensearch, loki[5], quickwit[6], zincsearch[7]
- vector search: Milvus[8], Qdrant[9], Vald[10] Weaviate[11]
Vespa.ai[12] is great but I don't really know in which category to put them, user facing and enterprise search seems to work well with them.
It's interesting to note that Elasticsearch and Opensearch are general purpose search engine, Solr as well. They are all powered by Lucene, the popular and performant search engine library.
Another general purpose search engine is Manticore search[13].
I would love to see some benchmarks by category :)
Note: I don't know well ZincSearch and put it in the log search as said on their front page.
[1]: https://github.com/elastic/elasticsearch
[2]: https://github.com/opensearch-project/OpenSearch
[3]: https://github.com/meilisearch/meilisearch/
[4]: https://github.com/typesense/typesense
[5]: https://github.com/grafana/loki
[6]: https://github.com/quickwit-oss/quickwit
[7]: https://github.com/zinclabs/zinc
[8]: https://github.com/milvus-io/milvus
[9]: https://github.com/qdrant/qdrant
[10]: https://github.com/vdaas/vald
[11]: https://github.com/semi-technologies/weaviate
We're bringing neural code search to the masses. To do this we're developing efficient, fast indexing and retrieval mechanisms that enable lightning-fast search and scale to massive amounts of code.
As a Senior Software Engineer you'll work at the heart of this, collaborating with a small, talented team to design and implement the core engine that powers bloop search. You'll work on the forefront of information retrieval and data storage, using techniques pioneered in academia and the latest open source search projects and developing some of your own too! You'll get to show off too, as we will open-source the first version of the engine.
You'll love what we're working on if you're interested in the implementation of:
- https://github.com/quickwit-oss/tantivy
- https://github.com/meilisearch/meilisearch
- https://github.com/BurntSushi/fst
You'll be joining a small group of engineers who are obsessed with the challenges posed by search, and who want to build tools to improve the process of writing and maintaining software.
More retails about the role here: https://bloop.jobs.personio.com/job/748329?display=en
Apply by emailing [email protected] or through the Personio link.
Both MeiliSearch and Typesense use a reverse index with a Levenshtein automaton to handle typos, but when it comes to sorting document:
- Typesense use a default_sorting_field on each document, it means that before indexing your documents you need to compute a relevancy score for typesense to be able to sort them based on your needs (https://typesense.org/docs/0.11.1/guide/#ranking-relevance)
- On the other hand MeiliSearch, uses a bucket sort which means that there is a default relevancy algorithm based on the proximity of words in the documents, the fields in which the words are found and the number of typos (https://docs.meilisearch.com/guides/advanced_guides/ranking....). And you can still add you own custom rules if you want to alter the default search behavior.