ELK 的JAVA-API

java编写elk程序

public class AppTest 
{
    //提取到公共变量
    TransportClient client = null;

    @Before
    public void begin() throws UnknownHostException {
        //指定ES集群
        Settings settings = Settings.builder().put("cluster.name","caies").build();

        //创建访问ES服务器的客户端
        client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.101.201"),9300));
    }

    @Test
   public void test1() throws UnknownHostException {
        //System.out.println(client);
        GetResponse response = client.prepareGet("lib3","user","1").execute().actionGet();
        System.out.println(response.getSourceAsString());
        //client.close();
   }

   //添加
    @Test
   public void test2() throws IOException {
       XContentBuilder doc = XContentFactory.jsonBuilder()
               .startObject()
               .field("id", 1)
               .field("title", "JAVA")
               .field("content", "JAVA VERY STRONG!!!")
               .field("postdate", "2019-03-16")
               .field("url", "e.kgc,cn")
               .endObject();


       IndexResponse response = client.prepareIndex("index1","blog","10").setSource(doc).get();
       System.out.println(response.status());
   }

   //删除
    @Test
    public void test3(){
        DeleteResponse response = client.prepareDelete("index1", "blog", "10").get();
        System.out.println(response.status());
    }


    //更新
    @Test
    public void test4() throws IOException, ExecutionException, InterruptedException {
        UpdateRequest request =  new UpdateRequest();
        request.index("index1").type("blog").id("10").doc(
                XContentFactory.jsonBuilder()
                .startObject()
                .field("title","JAVS学习")
                .endObject()
        );
        UpdateResponse response = client.update(request).get();
        System.out.println(response.status());
    }

    // 如果存在这条数据则执行updete 如果不存在,执行insert
    @Test
    public void test5() throws IOException {
        IndexRequest request1 = new IndexRequest("index1","blog","8")
                .source(
                   XContentFactory.jsonBuilder()
                        .startObject()
                            .field("id",2)
                            .field("title","学习")
                            .field("content","doc查询")
                            .field("postdate","2020-03-16")
                            .field("url","e.kgc.cn")
                        .endObject()
                );

        UpdateRequest request2 = new UpdateRequest("index1","blog","8")
                .doc(
                        XContentFactory.jsonBuilder()
                                .startObject()
                                .field("name","es学习")
                                .endObject()
                );
    }


    // 批量查询
    @Test
    public void test6(){
        MultiGetResponse multiGetItemResponses = client.prepareMultiGet()
                .add("index","blog","8","10")
                .add("lib3", "user", "1", "2", "3").get();
        for(MultiGetItemResponse item : multiGetItemResponses){
            GetResponse response = item.getResponse();
            if(response!=null && response.isExists()){
                System.out.println(response.getSourceAsString());
            }
        }
    }


    // bulk批量操作
    @Test
    public void test7() throws IOException {
        BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
        bulkRequestBuilder.add(
                client.prepareIndex("lib2","books","1")
                          .setSource(
                                  XContentFactory.jsonBuilder()
                                  .startObject()
                                            .field("title","hodoop")
                                            .field("price",59)
                                  .endObject()
                          )
        );
        bulkRequestBuilder.add(
                client.prepareIndex("lib2","books","2")
                        .setSource(
                                XContentFactory.jsonBuilder()
                                        .startObject()
                                        .field("title","spark")
                                        .field("price",68)
                                        .endObject()
                        )
        );

        BulkResponse response = bulkRequestBuilder.get();
        System.out.println(response.status());
        if (response.hasFailures()){
            System.out.println("添加失败");
        }else{
            System.out.println("成功");
        }
    }


    // 查询 matchAllQuery
    @Test
    public void test8(){
        MatchAllQueryBuilder matchAllQueryBuild = QueryBuilders.matchAllQuery();
        SearchResponse response = client.prepareSearch("lib3").setQuery(matchAllQueryBuild).setFrom(0).setSize(3).get();
        SearchHits hits = response.getHits();
        for(SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());
            Map<String,Object> sourceAsMap = hit.getSourceAsMap();
            for(String key : sourceAsMap.keySet()){
                System.out.println(key+"="+sourceAsMap.get(key));
            }
         }
    }

    // 查询
    @Test
    public void test9(){
        MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("interests", "taiji");
        SearchResponse response = client.prepareSearch("lib3").setQuery(matchQueryBuilder).setFrom(0).setSize(2).get();
        SearchHits hits = response.getHits();
        for(SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());
            Map<String,Object> sourceAsMap = hit.getSourceAsMap();
            for (String key : sourceAsMap.keySet()){
                System.out.println(key+"="+sourceAsMap.get(key));
            }
        }
    }



    @Test
    public void test10(){
        MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("kanshu", "address", "interests");
        SearchResponse response = client.prepareSearch("lib3").setQuery(multiMatchQueryBuilder).setFrom(0).setSize(2).get();
        SearchHits hits = response.getHits();
        for(SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());
            Map<String,Object> sourceAsMap = hit.getSourceAsMap();
            for (String key : sourceAsMap.keySet()) {
                System.out.println(key+"="+sourceAsMap.get(key));
            }
        }
    }

    // 词条查询
    @Test
    public void test11(){
        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("interests", "taiji");
        SearchResponse response = client.prepareSearch("lib3").setQuery(termQueryBuilder).setSize(3).get();
        SearchHits hits = response.getHits();
        for (SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());
        }
    }


    @Test
    public void test12(){
        TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("interests","taiji","kanshu");
        SearchResponse response = client.prepareSearch("lib3").setQuery(termsQueryBuilder).setSize(3).get();
        for (SearchHit hit : response.getHits()){
            System.out.println(hit.getSourceAsString());
        }
    }


    //
    @Test
    public void test13(){
        RangeQueryBuilder builder = QueryBuilders.rangeQuery("birthday").from("1990-01-01").to("2000-01-01").format("yyyy-MM-dd");
        SearchResponse response = client.prepareSearch("lib3").setQuery(builder).setSize(3).get();
        for (SearchHit hit : response.getHits()){
            System.out.println(hit.getSourceAsString());
        }
    }


    @Test
    public void test14(){
        PrefixQueryBuilder builder = QueryBuilders.prefixQuery("name", "z");

        RangeQueryBuilder builder1 = QueryBuilders.rangeQuery("birthday").from("1990-01-01").to("2020-10-01").format("yyyy-MM-dd");

        WildcardQueryBuilder builder2 = QueryBuilders.wildcardQuery("name","z*");

        WildcardQueryBuilder builder3 = QueryBuilders.wildcardQuery("name","zhiyuan");

        FuzzyQueryBuilder builder4 = QueryBuilders.fuzzyQuery("interests","kanshu");

        IdsQueryBuilder builder5 = QueryBuilders.idsQuery().addIds("1","2","3");

        SearchResponse response = client.prepareSearch("lib3").setQuery(builder5).get();
        for (SearchHit hit : response.getHits()){
            System.out.println(hit.getSourceAsString());
        }
    }


    // 聚合函数
    @Test
    public void test15() {
        // 查询最大值
//        MaxAggregationBuilder aggregationBuilder = AggregationBuilders.max("aggMax").field("age");
//        SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
//        Max aggMax = response.getAggregations().get("aggMax");
//        System.out.println(aggMax.getValue());

        // 查询最小值
//        MinAggregationBuilder aggregationBuilder = AggregationBuilders.min("aggMin").field("age");
//        SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
//        Min aggMin = response.getAggregations().get("aggMin");
//        System.out.println(aggMin.getValue());
//       }

        // 查询平均值
//        AvgAggregationBuilder aggregationBuilder = AggregationBuilders.avg("aggAvg").field("age");
//        SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
//        Avg aggAvg = response.getAggregations().get("aggAvg");
//        System.out.println(aggAvg.getValue());


        //查询总和
        SumAggregationBuilder aggregationBuilder = AggregationBuilders.sum("aggSum").field("age");
        SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
        Sum aggSum = response.getAggregations().get("aggSum");
        System.out.println(aggSum.getValue());
    }


    //
    @Test
    public void test16(){
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()//.should()
                .must(QueryBuilders.matchQuery("interests","kanshu"))
                .mustNot(QueryBuilders.matchQuery("interests","taiji"));
        SearchResponse response = client.prepareSearch("lib3").setQuery(boolQueryBuilder).get();
        for (SearchHit hit : response.getHits()){
            System.out.println(hit.getSourceAsString());
        }

    }



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值