public long countSearch(String index,String fuzzySearchStr) throws IOException {
        CountRequest countRequest = new CountRequest(index);
        SearchSourceBuilder builder = new SearchSourceBuilder();
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

        //等于条件
        boolQueryBuilder.must(QueryBuilders.termsQuery("字段" +  ".keyword", "字段值"));

        //不等于条件
        boolQueryBuilder.mustNot(QueryBuilders.termsQuery("字段" +  ".keyword", "字段值"));

        //时间范围查询
        boolQueryBuilder.must(QueryBuilders.rangeQuery("字段"+ ".keyword").from("开始时间值"));
        boolQueryBuilder.must(QueryBuilders.rangeQuery("字段"+ ".keyword").to("结束时间值"));
       

        //全局模糊查询
        if (StringUtils.isNotBlank(fuzzySearchStr)) {
            boolQueryBuilder.must(QueryBuilders.queryStringQuery("*"+fuzzySearchStr+"*"));
        }

        builder.query(boolQueryBuilder);
        countRequest.source(builder);
        CountResponse countResponse = client.count(countRequest, RequestOptions.DEFAULT);
        long count = countResponse.getCount();
        return count;
    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐