Elasticsearch Java High Level REST Client的GET API提供了一种控制来获取_source
的哪些字段的方法。
val request = GetRequest(index)
.id(id)
.fetchSourceContext(FetchSourceContext(true, includedFields, excludedFields))
elasticClient.get(request, RequestOptions.DEFAULT)
如何使用Search APIs实现这一目标?
例如,以下搜索请求:
val source = SearchSourceBuilder()
source.query(QueryBuilders.matchAllQuery())
val request = SearchRequest(index)
.source(source)
elasticClient.search(request, RequestOptions.DEFAULT)
答案 0 :(得分:1)
此方法还接受一个或多个通配符模式的数组,以更细粒度的方式控制要包含或排除的字段:
代码块
String[] includeFields = new String[] {"title", "innerObject.*"};
String[] excludeFields = new String[] {"user"};
sourceBuilder.fetchSource(includeFields, excludeFields);
类似地获得您已经提到的API,您可以提供一系列
includeFields
和excludeFields
,以控制从_source
个字段中提取字段。