Elasticsearch Java客户端8.x版本:如何指定检索返回字段?
Elasticsearch 8.x Java客户端指定检索字段的实现方法
如果是使用8.x版本的旧版High Level REST Client(兼容7.x,8.x中仍可使用),你原来的代码可以直接复用,因为SearchSourceBuilder的fetchSource方法签名没有变化:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.fetchSource(new String[] {"A", "B"}, null);
如果是使用8.x推荐的新版Elasticsearch Java Client(基于Jakarta REST Client,包路径为co.elastic.clients),则需要通过source()方法配置字段过滤,实现仅获取指定字段:
// 链式调用配置 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.source(sourceConfig -> sourceConfig.includes("A", "B") // 指定要包含的字段 ); // 更简洁的写法 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder() .source(s -> s.includes("A", "B"));
如果后续需要排除某些字段,只需在source()配置中加入excludes()方法即可:
searchSourceBuilder.source(s -> s .includes("A", "B") .excludes("C", "D") );
内容的提问来源于stack exchange,提问作者SPao
相关产品推荐
相关产品推荐

