java - 获取所有记录,包括特定字段
问题描述
我正在使用 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。
解决方案
您走在正确的道路上,尽管源过滤要求您在数组中指定字段,如下所示:
String[] includeFields = new String[] {"recipe_ID", "recipe_url"};
sourceBuilder.fetchSource(includeFields, null);
推荐阅读
- php - 在 shopify 结账时显示 Laravel 数据
- jenkins - 詹金斯管道中的预提交(工具),初始化并停止构建?
- typescript - 打字稿不会转译导入路径
- sql-server - PowerShell - 将文件名添加到要导入 SQL Server 的列列表中
- image - 如何输入正确的图像路径
- r - 通过 ID 和索引获取第一个值
- php - Laravel 8惯性将数据传递给AppLayout
- javascript - 在 Javascript 中制作函数的真实副本
- reactjs - 如何让 React Router 识别动态路径上的新路由
- sql - 如何对具有父/子关系的批次的值求和?