Я новичок в упругом поиске и пытаюсь интегрировать подсказку завершения в одну из моих заявок, следуя статье Вы меня дополняете
Я вставилобразец данных в ES с сопоставлением, и приведенный ниже запрос CURL (окна) возвращает результат
curl -H "Content-Type: application/json" -X POST localhost:9200/hotels/_search?pretty -d^
"{^
\"suggest\": {^
\"hotel_suggest\" : {^
\"prefix\" : \"hot\", ^
\"completion\" : { ^
\"field\" : \"name_suggest\" ^
}^
}^
}^
}"
К сожалению, приведенный ниже код с использованием API Java не возвращаетсялюбые документы из БД (просто печать результатов для целей тестирования)
public String suggestSearch() throws IOException {
SearchRequest searchRequest = new SearchRequest("hotels");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// searchSourceBuilder.query(QueryBuilders.matchAllQuery());
SuggestionBuilder termSuggestionBuilder =
SuggestBuilders.termSuggestion("name").text("hot");
SuggestBuilder suggestBuilder = new SuggestBuilder();
suggestBuilder.addSuggestion("name_suggest", termSuggestionBuilder);
searchSourceBuilder.suggest(suggestBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
Suggest suggest = searchResponse.getSuggest();
TermSuggestion termSuggestion = suggest.getSuggestion("name_suggest");
for (TermSuggestion.Entry entry : termSuggestion.getEntries()) {
for (TermSuggestion.Entry.Option option : entry) {
String suggestText = option.getText().string();
System.out.println(suggestText);
}
}
return "SUCCESS";
}
Что не так в этом коде?