ElasticSearch 创建链接 创建索引并写入数据 查询数据 删除索引BY Id 简单的demo

来源:互联网 发布:js获取动态时间 编辑:程序博客网 时间:2024/05/20 04:15
1:创建ES链接:
Clientclient= null;
           ipAddress= "127.0.0.1" ;
           Settingssettings= Settings.settingsBuilder().put("client.transport.ping_timeout", 60, TimeUnit.SECONDS)
                     .put("client.transport.sniff",true).build();
           try{
                client= TransportClient.builder().settings(settings).build()
                           .addTransportAddress(newInetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
           }catch(Exceptione) {
                e.printStackTrace();
           }
           returnclient;
2:创建索引并存入数据:
     
publicIndexResponse createIndexResponse(Stringindexname, Stringtype, Stringjsondata) {
           IndexResponseresponse= ClientFactory.getClient("").prepareIndex(indexname,type).setSource(jsondata).execute()
                     .actionGet();
           returnresponse;
     }
3:根据索引&type查询数据
SearchResponsesearchResponse= ClientFactory.getClient("")
                                                    .prepareSearch(indexname)
                                                    .setTypes(types)
                                                    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                                                    .setQuery(queryBuilder)
//                                                  .setFrom(0).setSize(2)
                                                   //排序
//                                                  .addSort("count", org.elasticsearch.search.sort.SortOrder.ASC)
                                                   //分组查询
                                                    .addFieldDataField("type")
                                                    .execute().actionGet();
           SearchHitshits= searchResponse.getHits();
           System.out.println("查询到记录数="+ hits.getTotalHits());
           SearchHit[]searchHists= hits.getHits();
           if( searchHists.length> 0) {
                for(SearchHithit: searchHists) {
                     Integerid= (Integer)hit.getSource().get("id");
                     Stringname= (String)hit.getSource().get("name");
                     Stringfunction= (String)hit.getSource().get("function");
                     Integercount= (Integer)hit.getSource().get("count");
                     Stringtype= (String)hit.getSource().get("type");
                     list.add(newMedicine(id,name,function,count,type));
                }
           }
           returnlist;
queryBuilder:
                    
          QueryBuilderqueryBuilder= QueryBuilders.commonTermsQuery("name","感冒");
 
 
 
 
4:删除索引:
      DeleteResponse deleteResponse = new DeleteResponse();
      ClientFactory.getClient("localhost").prepareDelete("indexdemo","typedemo","AVS9lVbPE6VtAdn5kDAm").execute().actionGet();
      System.out.println(deleteResponse.isFound());
 
 
 
 
 
 
 
 
 
注:   本项目使用maven搭建:
   <dependency>
     <groupId>org.elasticsearch</groupId>
     <artifactId>elasticsearch</artifactId>
     <version>2.1.1</version>
   </dependency>
0 0
原创粉丝点击