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