elasticsearch java ElasticsearchClient.search 方法有size值的缓存

使用java 查询elasticsearch 数据发现size有缓存问题

public List<OASearch> dealQueryWithPage(ElasticsearchClient client, String indexName, Query query, int from, int size, List<SortOptions> sorts, Class<OASearch> reclass) throws IOException {
int start = from != 0 ? (from-1)*size: 0;
SearchResponse<OASearch> searchResponse =client.search(
s -> s.index(indexName).query(query).sort(sorts).from(start).size(size),reclass);
return getResponseSource(searchResponse);
}
public List<OASearch> dealQuery(ElasticsearchClient client,String indexName, Query query,List<SortOptions> sorts, Class<OASearch> reclass) throws IOException {
//此处不加size参数会使用前面查询的size,不知是否是客户端设置的原因 故加上导出数据条数上限
SearchResponse<OASearch> searchResponse =client.search(
s -> s.index(indexName).query(query).sort(sorts).size(exportMaxSize),reclass);

return getResponseSource(searchResponse);
}

一个查询条件 架设满足条件的数据共有15条 分页查询容量10条 但是经过第一次分页查询的方法后使用非分页查询的方法 结果任然只有10条,加入超过15的size后任然可以查到15条数据。

 public ElasticsearchClient elasticsearchClient(){
        ElasticsearchClient client = null;

        if (enable){
            final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            //设置账号密码
            credentialsProvider.setCredentials(
                    AuthScope.ANY, new UsernamePasswordCredentials(userName, passWord));

//        RestClients restClients =
//            RestClient restClient = RestClient.builder(new HttpHost(host, port))
//                    .setHttpClientConfigCallback(httpClientBuilder->httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)).build();
//
//            ElasticsearchTransport transport = new RestClientTransport(restClient,new JacksonJsonpMapper());
            // And create the API client

            Path caCertificatePath = Paths.get(capath);
            System.out.println("capath:"+capath);
            SSLContext sslContext = null;
            try {
                CertificateFactory factory = CertificateFactory.getInstance("X.509");
                Certificate trustedCa;
                try (InputStream is = Files.newInputStream(caCertificatePath)) {
                    trustedCa = factory.generateCertificate(is);
                }
                KeyStore trustStore = KeyStore.getInstance("pkcs12");
                trustStore.load(null, null);
                trustStore.setCertificateEntry("ca", trustedCa);
                SSLContextBuilder sslContextBuilder = SSLContexts.custom()
                        .loadTrustMaterial(trustStore, null);
                sslContext = sslContextBuilder.build();
                SSLContext finalSslContext = sslContext;
                RestClientBuilder builder = RestClient.builder(
                        new HttpHost(host, port, "https"))
                        .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
                                .setSSLContext(finalSslContext)
                                .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
                                .setDefaultCredentialsProvider(credentialsProvider));
                ElasticsearchTransport transport = new RestClientTransport(builder.build(),new JacksonJsonpMapper());
               client = new ElasticsearchClient(transport);
            } catch (CertificateException | IOException | KeyStoreException | NoSuchAlgorithmException | KeyManagementException e) {
                //log.error("ES连接认证失败", e);
                System.out.println("ES连接认证失败:"+e.getMessage());
            }


        }
        return client;

    }

 但是在kibana中同样的查询语句结果是15条 不知道这个是我客户端设置有问题还是 size参数有缓存数据

es 版本 8.6.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值