We built a "Yelp for Colleges" product several years ago. The product needed a unified search where students could search for either a course or a college or a question from the forums with typeahead / autocomplete to get them to where they wanted to go quickly, with support for misspellings.
In all there were about 50k documents, and we mostly cared about the title field. Elasticsearch would randomly bloat up to occupy a huge amount of RAM. Restarting it would make it work for a few days. It would also occasionally crash.
We got rid of it and went with some levenshtein distance based database query
I'd love to use it again sometime but the experience was not good, and Googling for information brought up all kinds of very complex use-cases shared by others
Go on and try MeiliSearch, 50k documents are easily handled by the engine and with not much RAM usage.
It will take you something like 10 minutes to start and populate MeiliSearch, you will be able to test it just by going to the server HTTP url in no time!
I implemented the student facing course catalog web interface for a single org. One of the funnests (most fun) parts was the heuristics in the query parser. Like patterns for recognizing course numbers and boosting those exact match results. Really helps you appreciate all the fit & finish that goes into proper search engines.
This was the olden days, when we just used Lucene directly.
In all there were about 50k documents, and we mostly cared about the title field. Elasticsearch would randomly bloat up to occupy a huge amount of RAM. Restarting it would make it work for a few days. It would also occasionally crash.
We got rid of it and went with some levenshtein distance based database query
I'd love to use it again sometime but the experience was not good, and Googling for information brought up all kinds of very complex use-cases shared by others