Elasticsearch日常开发

2020-08-12 14:51:37

每次遇到ES开发,一般都是查询es里面的数据,今天我教大家一个简单的es的查询。废话不多说,直接上代码。

在pom文件中引入

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

 

// 初始化api客户端
    public RestHighLevelClient client = new RestHighLevelClient(
            RestClient.builder(
                    new HttpHost("localhost", 9200, "http")
            ));

其中的localhost和9200需要小伙伴们自己配置,不管你是写配置文件也好,代码里面写死也可以,我目前是写死的。client就是连接es的。

 public Map<String,Object> findUserName(String sex,String age) throws IOException {
        RequestOptions.Builder options = RequestOptions.DEFAULT.toBuilder();
        //设置连接的库名 即_index
        SearchRequest searchRequest = new SearchRequest("mymayikt");
        /// 搜索源构建对象
        SearchSourceBuilder search = new SearchSourceBuilder();
        //多条件查询
        BoolQueryBuilder boolBuilder=QueryBuilders.boolQuery();
     //这个地方就是多条件查询的时候,需要写的,当然也可以在外面进行一个判空处理
     /*
     if(sex不为空不为null){
      boolBuilder.must(QueryBuilders.matchPhraseQuery("sex", sex));
     }    
    */

        boolBuilder.must(QueryBuilders.matchPhraseQuery("sex", sex));
        boolBuilder.must(QueryBuilders.matchPhraseQuery("age",age));
        //如果需要分页查询则进行入参
        int page = 2; // 页码
        int size = 10; // 每页显示的条数
        int index = (page - 1) * size;
        search.from(0);
        search.size(10);
        //将多条件打包放入
        search.query(boolBuilder);
        searchRequest.source(search);
        SearchResponse response = client.search(searchRequest, options.build());
        SearchHits hits = response.getHits();
        int i = 0;
        System.out.println("共:"+hits.getTotalHits()+"数据");
        List list = new ArrayList();
        for (SearchHit hit :hits.getHits()) {
            list.add(hit.getSourceAsMap());
            System.out.println("ES   "+hit.getSourceAsMap());
        }
        Map<String,Object> map = new HashMap<>();
        map.put("totaPage",hits.getTotalHits());
        map.put("list",list);
        return map;
    }

下面看es的服务端的数据

 

 es的搭建与服务端的包请自行下载。我这里用的是7.3.1版本的es 。 找到 elasticsearch-7.3.1-windows-x86_64\elasticsearch-7.3.1\bin 的bin文件夹

 

 双击 elasticsearch.bat就可以启动es服务

 

 然后在浏览器访问 localhost:9200或者127.0.0.1:9200 看到如下的版本好就代表es启动成功。

 

 

想要操作es的服务端可以下载 elasticsearch-head-master 找到index.html文件 用浏览器打开

 

 

 打开之后输入localhost:9200就可以连接成功

 

posted on 2020-08-12 14:53  海哥哥99  阅读(743)  评论(1编辑  收藏  举报

导航