Я в процессе обновления до elasticsearch 6.0 в своем Java-приложении.
Раньше я использовал CompletionSuggestionFuzzyBuilder для создания предложений, но с последней версией этого класса больше нет. Я обнаружил, что могу создать MaMatchQueryBuilder, который будет использовать нечеткость для получения результатов:
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("user", "kimchy");
matchQueryBuilder.fuzziness(Fuzziness.AUTO);
matchQueryBuilder.prefixLength(3);
matchQueryBuilder.maxExpansions(10);
но я не могу использовать его с предложениями. Поэтому я ищу способ использовать нечеткие предложения.




Думаю, я нашел способ сделать это. Вот решение:
SearchResponse suggestRequestBuilder = elasticClient.prepareSearch(index)
.suggest(new SuggestBuilder()
.addSuggestion(
"suggestionsFuzzy",
SuggestBuilders.completionSuggestion("myField")
.prefix(suggestRequest, Fuzziness.AUTO).size(10)
)
).get();