I've spent around a week tinkering with Elasticsearch. I'm trying to create a search query that will enable substring search ('kua lum' => 'kuala lumpur') and fuzzy search ('koala lumpur' => 'kuala lumpur') on all fields of the documents. So far I've learned that you use multi_match for a multi-field fuzzy search and you use wildcard for a substring search (can't use nGram because it would break fuzzy search), but there's literally no information on how to combine them.
Yesterday I gave a try to Algolia and it did everything I needed right out of the box. Unfortunately, I'm working with sensitive data so I'm not allowed to host it outside the local infrastructure and even if Algolia did offer on-premise I'm afraid it would be too pricey for my banana republic to afford.
So I guess I'm stuck with Elasticsearch. Is it possible to make it do what I want it to do? I'm also free to try other search engines.
upd: tried MeiliSearch, works out of the box