@Overridepublic String spellingCorrection(SpellingCorrectionRequest request) throws IOException {// 1、构建 PhraseSuggestion 条件PhraseSuggestionBuilder phraseSuggestionBuilder = new PhraseSuggestionBuilder(request.getFieldName());phraseSuggestionBuilder.text(request.getText());phraseSuggestionBuilder.size(1);SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();searchSourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC));searchSourceBuilder.suggest(new SuggestBuilder().addSuggestion(MY_SUGGEST, phraseSuggestionBuilder));// 2、封装搜索请求SearchRequest searchRequest = new SearchRequest();searchRequest.indices(request.getIndexName());searchRequest.source(searchSourceBuilder);// 3、查询elasticsearchSearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 4、获取响应中纠错后的词PhraseSuggestion phraseSuggestion = searchResponse.getSuggest().getSuggestion(MY_SUGGEST);List<PhraseSuggestion.Entry.Option> options = phraseSuggestion.getEntries().get(0).getOptions();return Optional.ofNullable(options).filter(e -> !e.isEmpty()).map(e -> e.get(0)).map(e -> e.getText().string()).orElse("");}
