join the nosql movement needs to combine tokens to create -gramsalso called shingles the default elasticsearch tokenizer is called the standard tokenizerand it will look for word boundarieslike the space between wordsto cut the text into different tokens or terms take look at the new settings for your disease indexas shown in the following listing listing updating elasticsearch index settings settings="analysis""filter""my_shingle_filter""type""shingle""min_shingle_size" "max_shingle_size" "output_unigrams"false }"analyzer""my_shingle_analyzer""type""custom""tokenizer""standard""filter""lowercase""my_shingle_filterbefore you can change certain settingsthe index needs to be closed after changing the settingsyou can reopen the index client indices close(index=indexnameclient indices put_settings(index=indexname body settingsclient indices open(index=indexnameyou create two new elementsthe token filter called "my shingle filterand new analyzer called "my_shingle_analyzer because -grams are so commonelasticsearch comes with built-in shingle token filter type all you need to tell it is that you want the bigrams "min_shingle_size "max_shingle_size as shown in figure you could go for trigrams and higherbut for demonstration purposes this will suffice name built-in token filter type we want bigrams we don' need the unigrams output next to our bigrams figure shingle token filter to produce bigrams