There are two ways to solve many searching use cases in Elastcisearch:
(I) to split text into tokens, add synonyms, and search them via an inverted index
(II) to use patterns such as wildcards, regexp, or fuzzy query
Consider two examples
(1) ‘Search as you type’ could be realized via (I) edge_ngram
or search_as_you_type
or (II) wildcard
(2) Compound names with/without space (‘PostOffice’ and ‘Post Office’) could be found with using of (I) dictionary_decompounder
or synonym
or (II) fuzzy query
What are recommendations to choose a way for fast searching in these use cases?