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就可以连接成功

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM