次の Java コードを使用して、elasticsearch 7.3 にクエリを実行し、1 つのドキュメントを取得しています。スコアが最も高い 1 つのドキュメントのみに設定しました。それは正常に機能しており、ドキュメントを完全に返しています。
@Autowired
RestHighLevelClient client;
@RequestMapping(value = "/search", method = RequestMethod.GET)
public @ResponseBody
String getItem(@RequestParam("string") String string) throws IOException {
QueryBuilder matchQueryBuilder = QueryBuilders.simpleQueryStringQuery(string);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(matchQueryBuilder);
sourceBuilder.from(0);
sourceBuilder.size(1);
sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
SearchRequest searchRequest = new SearchRequest("nutrients");
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
return searchResponse.toString();
}
応答は次のとおりです。Java コードを使用して値にアクセスし、Calories , Fat , Protein , Carbohydrate
other の値を無視しますNutrient
。String caloriesVar=153 kcal
他の3つの変数と同様に、4つの変数の値が必要です。
[