使用Elasticsearch-Rest-Client(java API)完成ES查询的示例

有两个问题:一是es的自动分页的问题,查询得到显示的数据只有十条,但统计命中记录数385条
二是怎么嵌套聚合查询,在下面的查询过程中两个聚合是并列的

1.引入和es同版本的依赖

  <!--elasticsearch rest client-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.4.2</version>
        </dependency>
  <properties>
        <java.version>1.8</java.version>
        <!--===注意这里要配置es的版本
        即使在下面的<dependency>中引入了7.4.2版本的esclient
        打开侧边的maven可以看到当前模块的es版本是6.4.3
        这是因为当前模块使用的spring-boot-starter-parent的版本中配置了es的版本为6.4.3
        如果要覆盖spring-boot-starter-parent的配置  就在这里重新写版本=================-->
        <elasticsearch.version>7.4.2</elasticsearch.version>
    </properties>

2.创建配置类

package com.kaki.gulimall.search.config;


import org.apache.http.HttpHost;
import org.elasticsearch.client.HttpAsyncResponseConsumerFactory;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ElasticSearchConfig {
   

    /**
     *   使用 java api 操作 elasticsearch
     *   1. 导入同版本的依赖  elasticsearch-rest-high-level-client
     *   2. 编写配置类 @Bean 注入到容器  获取 client 对象
     *   3. 测试
     */


    //这里没有使用  @Bean注解  放到容器中 静态方法 直接通过类名调用 单例模式
    //  访问es 有安全鉴别  这个方法给请求设置 RequestOptions 官方文档中有
    public static final RequestOptions COMMON_OPTIONS;
    static {
   
        RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
//        builder.addHeader("Authorization", "Bearer " + TOKEN);
//        builder.setHttpAsyncResponseConsumerFactory(
//                new HttpAsyncResponseConsumerFactory
//                        .HeapBufferedResponseConsumerFactory(30 * 1024 * 1024 * 1024));
        COMMON_OPTIONS = builder.build();
    }

    @Bean
    public RestHighLevelClient getEsClient(){
   
        RestHighLevelClient client = new RestHighLevelClient(
                
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值