Trying to use CompletionSuggester for autocomplete feature, There are different ways to implement the completion-suggester through Java's RestHighLevelClient, Wanted to understand is there any difference (in terms of performance/query execution speed) among these below methods
1: Using CompletionSuggestionBuilder (taking 8mill-sec):
val completionSuggestionBuilder = SuggestBuilders.completionSuggestion("field_name").prefix("ban", Fuzziness.ONE).size(10)
val suggestBuilder = SuggestBuilder().addSuggestion("find_by_prefix", completionSuggestionBuilder)
val searchSourceBuilder = SearchSourceBuilder().suggest(suggestBuilder)
val searchRequest = SearchRequest("locations").source(searchSourceBuilder)
val searchResponse = restClient.search(searchRequest, RequestOptions.DEFAULT)
2: Using SimpleQueryString (taking 30mill-sec) :
val query = """{"suggest":{"find_by_prefix":{"prefix":"Ban","completion":{"field":"field_name","size":10,"fuzzy":{"fuzziness":1},"contexts":{"locationType":[{"context":"AREA","boost":1},{"context":"CITY","boost":1}],"geolocation":[{"lon":77.6279354,"lat":12.9331699,"precision":"30km","boost":2}]}}}}}"""
val searchSourceBuilder = SearchSourceBuilder().query(QueryBuilders.simpleQueryStringQuery(query))
val searchRequest = SearchRequest("locations").source(searchSourceBuilder)
val searchResponse = restClient.search(searchRequest, RequestOptions.DEFAULT)