ElasticSearch 에서 wildcard 쿼리 대신 ngram을 활용하는 방법

ElasticSearch를 사용하면서 DSL 을 구성할 때, RDBMS 의 like "%keyword%" 와 같은 쿼리를 대체하기 위해서 wildcard 를 사용하는 경우를 몇번 목격하였다. 이 경우 원하는 결과를 제대로 얻을 수도 없을 뿐더러, 성능의 문제가 발생하기 쉬운데, 이를 ngram 으로 대체하여 원하는 결과를 얻는 방법을 확인해 보았다.