Получить всю запись, включая определенные поля
Я работаю с Elasticcsearch 7.3. Я хочу получить только две записи всех документов с помощью JAVA Api из моего индекса. Я использую следующий код, но он возвращает нулевой объект.
RestHighLevelClient client;
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.fetchSource("recipe_ID,recipe_url", null);
sourceBuilder.from(0);
SearchRequest searchRequest = new SearchRequest("recipes");
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHit searchHit = searchResponse.getHits().getAt(0);
String resultString = searchHit.getSourceAsString();
return resultString;
Мне нужно включить в результат только два поля recipe_ID и recipe_url.
1 ответ
Вы на правильном пути, хотя для фильтрации источников необходимо указать поля в таком массиве:
String[] includeFields = new String[] {"recipe_ID", "recipe_url"};
sourceBuilder.fetchSource(includeFields, null);