ES解决最大10000 问题
见大神博客 腾讯云Elasticsearch集群运维常用命令详解三(索引篇)-腾讯云开发者社区-腾讯云
DELETE /lockslogGET /lockslog/_search
GET /lockslog/_search
{
"query": {
"bool" : {
"filter" : [
{
"term" : {
"sn" : {
"value" : "SN4000504219054"
}
}
}
]
}
}
}GET /_all/_settings
GET /lockslog/_settings
PUT _all/_settings?preserve_existing=true
{
"index.max_result_window" : "50000"
}
/** * 分页查询 ES 中的数据 * * @param locksLogQuery * @param pages * @return */ @Override public Pages listEs(LocksLogQuery locksLogQuery, Pages pages) { NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder(); searchQueryBuilder.withTrackTotalHits(true); //工具类 BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); if (!StringUtils.isEmpty(locksLogQuery.getFileSn())||!StringUtils.isEmpty(locksLogQuery.getSn())) {//关键字高级查询 String sn = StringUtils.isEmpty(locksLogQuery.getFileSn()) ? locksLogQuery.getSn() : locksLogQuery.getFileSn(); boolQuery.filter().add(QueryBuilders.termQuery("sn", sn)); } if (!StringUtils.isEmpty(locksLogQuery.getRequestType())) {//关键字高级查询 boolQuery.filter().add(QueryBuilders.termQuery("requestType", locksLogQuery.getRequestType())); } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); if (locksLogQuery.getParams().size() != 0) { try { Date beginTime = format.parse(locksLogQuery.getParams().get("beginTime").toString()); Date endTime = format.parse(locksLogQuery.getParams().get("endTime").toString()); locksLogQuery.setDateMin(beginTime); locksLogQuery.setDateMax(endTime); } catch (ParseException e) { e.printStackTrace(); } } if (!StringUtils.isEmpty(locksLogQuery.getDateMin())) {//最小时间范围 >? 最大时间范围 <? boolQuery.filter().add(QueryBuilders.rangeQuery("createdTime").gte(locksLogQuery.getDateMin().getTime()).lte(locksLogQuery.getDateMax().getTime())); } //将条件放到bool中 searchQueryBuilder.withQuery(boolQuery); //放入分页条件 PageRequest pageRequest = PageRequest.of(pages.getPageNum() - 1, pages.getPageSize()); searchQueryBuilder.withPageable(pageRequest); //排序 if (!StringUtils.isEmpty(locksLogQuery.getFileLogDate())) { SortOrder sortOrder = SortOrder.ASC; FieldSortBuilder sortBuilder = SortBuilders.fieldSort("createdTime").order(sortOrder); //放入排序条件 searchQueryBuilder.withSort(sortBuilder); } //执行查询,得到结果 SearchHits<LocksLogDoc> search = elasticSearchRestTemplate.search(searchQueryBuilder.build(), LocksLogDoc.class, IndexCoordinates.of("lockslog")); List<LocksLogDoc> docList = search.stream().map(locksLogDocSearchHit -> locksLogDocSearchHit.getContent()).collect(Collectors.toList()); return new Pages(pages, search.getTotalHits(),docList ); }