你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
rochy - rochy_he
赞同来自: linfujian
linfujian
赞同来自:
qw8613243
要回复问题请先登录或注册
5 个回复
rochy - rochy_he
赞同来自: linfujian
2. 推荐将 第二个rangeQuery 前面的 must 换为 filter;
3. 如果只需要 title 字段,则最好指定返回的字段,而不是获取_source 的内容;
4. 你可以看一下 最好返回的内容的 took 的耗时,这个才是查询耗时,感觉你的耗时应该是耗费在了网络传输;
5. 你的获取总数和获取分页内容是可以合并在一起的。
linfujian
赞同来自:
qw8613243
赞同来自:
linfujian
赞同来自:
BoolQueryBuilder booleanQueryBuilder = QueryBuilders.boolQuery();
booleanQueryBuilder
.must(QueryBuilders.termsQuery("pmid", crossSet)); //此处限制入参size<5000, 本次查询返回数量为5000
if(crossSet.size() >5000 && "all".equals(ifRange)) { //假如满足条件的文章概要记录总数大于5000,则添加过滤条件:ifactor>3
booleanQueryBuilder
.must(QueryBuilders.rangeQuery("IF").gte(Float.parseFloat("3")));
}
//实时查询记录总数
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(booleanQueryBuilder)
.withIndices("pmid_title")
.withTypes("pmid_title_list")
.build();
long totoalCount = esUtil.count(searchQuery); //此处耗时7~8秒
result.put("count", totoalCount);
//分页查询
SearchQuery searchQuery2 = new NativeSearchQueryBuilder()
.withQuery(booleanQueryBuilder)
.withIndices("pmid_title")
.withTypes("pmid_title_list")
.withPageable(new PageRequest(page-1, rows))
.build();
titleList = esUtil.queryForPage(searchQuery2, Pmid2TitleEntity.class).getContent(); //此处耗时十几秒
linfujian
赞同来自: