最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?Api實現(xiàn)Elasticsearch的滾動查詢功能

 更新時間:2023年08月14日 10:25:50   作者:Cimbala  
這篇文章主要介紹了Java?Api實現(xiàn)Elasticsearch的滾動查詢,解決ES每次只能查詢一萬條數(shù)據(jù)的問題,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

解決ES每次只能查詢一萬條數(shù)據(jù)的問題

@Override
    public List<ESHandleDto> getVisitorsNum(String startTime, String endTime, String schoolName, String typeFunction) throws IOException {
        List<ESHandleDto> esHandleDtos = new ArrayList<>();
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices(ElasticEnum.FUNCTIONLOG_INDEX.getValue());
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        if (StringUtils.hasText(schoolName)) {
            boolQueryBuilder.must(QueryBuilders.termQuery("schoolName.keyword", schoolName));
        }
        if (StringUtils.hasText(typeFunction)) {
            boolQueryBuilder.must(QueryBuilders.termQuery("typeFunction.keyword", typeFunction));
        }
        if (StringUtils.hasText(startTime) && StringUtils.hasText(endTime)) {
            boolQueryBuilder.must(QueryBuilders.rangeQuery("createDate").gte(startTime + "T00:00:00.000Z").lte(endTime + "T23:59:59.000Z"));
        }
        BoolQueryBuilder shouldQuery = QueryBuilders.boolQuery();
        shouldQuery.should().add(QueryBuilders.termQuery("description.keyword", "查詢學(xué)生信息表"));
        shouldQuery.should().add(QueryBuilders.termQuery("description.keyword", "獲取學(xué)校訪客數(shù)據(jù)"));
        boolQueryBuilder.must(shouldQuery);
        sourceBuilder.sort("_doc", SortOrder.DESC);
        sourceBuilder.size(10000);
        sourceBuilder.query(boolQueryBuilder);
        searchRequest.scroll(TimeValue.timeValueMinutes(1));
        searchRequest.source(sourceBuilder);
//        System.out.println(sourceBuilder.toString());
        SearchResponse searchResponse = null;
        try {
            searchResponse = esConfig.restHighLevelClient().search(searchRequest, RequestOptions.DEFAULT);
        } catch (Throwable e) {
            throw new RuntimeException(e);
        }
        scrollHandle(searchResponse, esConfig, esHandleDtos, startTime, endTime);
        return esHandleDtos;
    }
    public static void scrollHandle(SearchResponse searchResponse, ESConfig esConfig, List<ESHandleDto> esHandleDtos, String startTime, String endTime) {
        SearchHits hits = searchResponse.getHits();
        String scrollId = searchResponse.getScrollId();
        SearchHit[] searchHits = hits.getHits();
        //對結(jié)果集處理
        List<FunctionLogElasticEntity> functionLogs = ESUtil.convertToFunctionLog(searchHits);
        visitorsResultHandle(functionLogs, esHandleDtos, ESUtil.isMoreThanMonth(startTime, endTime));
		//滾動查詢部分,將從第10001筆數(shù)據(jù)開始
        while (searchHits != null && searchHits.length > 0) {
            SearchScrollRequest searchScrollRequest = new SearchScrollRequest(scrollId);
            searchScrollRequest.scroll(TimeValue.timeValueMinutes(1));
            try {
                searchResponse = esConfig.restHighLevelClient().scroll(searchScrollRequest, RequestOptions.DEFAULT);
            } catch (Throwable e) {
                throw new RuntimeException(e);
            }
            scrollId = searchResponse.getScrollId();
            hits = searchResponse.getHits();
            searchHits = hits.getHits();
            //對結(jié)果集處理
            functionLogs = ESUtil.convertToFunctionLog(searchHits);
            visitorsResultHandle(functionLogs, esHandleDtos, ESUtil.isMoreThanMonth(startTime, endTime));
        }
        //清除滾動,否則影響下次查詢
        ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
        clearScrollRequest.addScrollId(scrollId);
        ClearScrollResponse clearScrollResponse = null;
        try {
            clearScrollResponse = esConfig.restHighLevelClient().clearScroll(clearScrollRequest, RequestOptions.DEFAULT);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        boolean succeeded = clearScrollResponse.isSucceeded();
        System.out.println(succeeded);
    }

到此這篇關(guān)于Java Api實現(xiàn)Elasticsearch的滾動查詢的文章就介紹到這了,更多相關(guān)Java Elasticsearch滾動查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Java源碼ConcurrentHashMap

    淺談Java源碼ConcurrentHashMap

    最近剛?cè)腴Tjava,覺得看源碼挺有意思的,就記錄一下一些常用類的源碼吧,從而能夠總結(jié)一些使用細(xì)節(jié).本文對源碼ConcurrentHashMap介紹的非常詳細(xì),對正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java使用Redis實現(xiàn)消息訂閱/發(fā)布的幾種方式

    Java使用Redis實現(xiàn)消息訂閱/發(fā)布的幾種方式

    Redis 提供了 Pub/Sub (發(fā)布/訂閱) 模式,允許客戶端訂閱頻道并接收發(fā)布到這些頻道的消息,以下是 Java 中使用 Redis 實現(xiàn)消息訂閱的幾種方式,需要的朋友可以參考下
    2025-08-08
  • Java中的fail-fast機制使用詳解

    Java中的fail-fast機制使用詳解

    fail-fast機制是Java集合中用于檢測并發(fā)修改的一種機制,當(dāng)一個線程遍歷集合時,如果集合被其他線程修改,就會拋出ConcurrentModificationException異常,解決fail-fast機制的方法包括使用普通for循環(huán)、Iterator
    2025-01-01
  • RestTemplate如何獲取HTTP狀態(tài)碼

    RestTemplate如何獲取HTTP狀態(tài)碼

    文章介紹了使用RestTemplate請求接口并處理HTTP狀態(tài)碼的方法,為了解決默認(rèn)處理器拋出異常的問題,建議自定義ResponseErrorHandler,自定義處理器不會拋出異常,從而可以獲取ResponseEntity對象并獲取HTTP狀態(tài)碼
    2026-01-01
  • Java中為什么不同的返回類型不算方法重載

    Java中為什么不同的返回類型不算方法重載

    這篇文章主要介紹了Java中為什么不同的返回類型不算方法重載,方法重載是指在同一個類中,定義了多個同名方法,但每個方法的參數(shù)類型或者是參數(shù)個數(shù)不同就是方法重載,下文詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-05-05
  • SpringBoot整合Gson 整合Fastjson的實例詳解

    SpringBoot整合Gson 整合Fastjson的實例詳解

    這篇文章主要介紹了SpringBoot整合Gson 整合Fastjson的實例詳解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot創(chuàng)建定時任務(wù)的示例詳解

    SpringBoot創(chuàng)建定時任務(wù)的示例詳解

    在Spring Boot中創(chuàng)建定時任務(wù),通常使用@Scheduled注解,這是Spring框架提供的一個功能,允許你按照固定的頻率(如每天、每小時、每分鐘等)執(zhí)行某個方法,本文給大家介紹了SpringBoot創(chuàng)建定時任務(wù)的示例,需要的朋友可以參考下
    2024-04-04
  • java 實現(xiàn)多線程的方法總結(jié)

    java 實現(xiàn)多線程的方法總結(jié)

    這篇文章主要介紹了java 實現(xiàn)多線程的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry:問題

    解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry

    這篇文章主要介紹了解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry:問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 29個要點幫你完成java代碼優(yōu)化

    29個要點幫你完成java代碼優(yōu)化

    本文給大家分享的是個人總結(jié)的29個java優(yōu)化需要注意的地方,非常的全面細(xì)致,推薦給大家,有需要的小伙伴可以參考下
    2015-03-03

最新評論

汶川县| 桐乡市| 高唐县| 阜宁县| 诏安县| 义乌市| 六枝特区| 美姑县| 梅河口市| 滦平县| 自治县| 通化县| 三亚市| 即墨市| 屏山县| 长岛县| 轮台县| 盈江县| 固安县| 嵊州市| 清远市| 灵寿县| 布拖县| 安多县| 黑龙江省| 积石山| 巍山| 德清县| 金湖县| 平湖市| 丰县| 宁波市| 西贡区| 镇雄县| 新营市| 来宾市| 福清市| 唐海县| 喀喇沁旗| 股票| 太湖县|