TransportClient替换为RestHighLevelClient
SearchRequestBuilder替换为SearchSourceBuilder
原来searchRequestBuilder的所有动作都需要去掉动词, 例如searchRequestBuild.addAggregation需要修改为searchSourceBuilder.aggregation,
searchRequestBuild.setSize需要修改为searchSourceBuilder.size等等
发起请求修改
原来
SearchResponse searchResponse= searchRequestBuild.execute().actionGet();
需要修改为
SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("indexName");
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse= client.search(searchRequest, RequestOptions.DEFAULT);
得到请求结果的json字符串
老代码
XContentBuilder builder = XContentFactory.jsonBuilder();
XContentBuilder xContent = searchResponse.toXContent(builder, ToXContent.EMPTY_PARAMS);
String jsonResponse = xContent.string();
新代码, 但是注意聚合结果的key会多出一些filter#,sterms#,lterms#
searchResponse.toString();
总数TotalHits成了对象
老代码
int total = actionGet.getHits().getTotalHits();
新代码
int total = actionGet.getHits().getTotalHits().value;
其余修改
InternalFilter修改为ParsedFilter
InternalTerms修改为ParsedTerms
InternalTerms.Bucket修改为ParsedTerms.ParsedBucket
InternalSum修改为ParsedSum
searchSourceBuilder.trackTotalHits(true); // “track_total_hits”: true如果不加上这个的话返回的总数默认只有10000