ElasticSearch学习(九)在Java应用中实现match查询和multimath查询,term查询和terms查询

//查询所有
    //match_all
    @Test
    public void test9() throws Exception {
        //指定ES集群
        Settings settings = Settings.builder().put("cluster.name", "my-application").build();

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

        QueryBuilder qb = QueryBuilders.matchAllQuery();
        SearchResponse sr = client.prepareSearch("lib3")
                .setQuery(qb)
                .setSize(3)
                .get();

        SearchHits hits = sr.getHits();

        for (SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());

            Map<String, Object> map = hit.getSourceAsMap();

            for (String key : map.keySet()){
                System.out.println(key +"= " +map.get(key));
            }

        }
    }

    //match查询指定一个字段
    @Test
    public void test10() throws Exception {
        //指定ES集群
        Settings settings = Settings.builder().put("cluster.name", "my-application").build();

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

        MatchQueryBuilder builder = QueryBuilders.matchQuery("interests", "duanlian");
        SearchResponse response = client.prepareSearch("lib3")
                .setQuery(builder)
                .setSize(3)
                .get();

        SearchHits hits = response.getHits();

        for (SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());

            Map<String, Object> map = hit.getSourceAsMap();

            for (String key : map.keySet()){
                System.out.println(key +" = " +map.get(key));
            }

        }


    }

    //multiMatch查询指定多个字段
    @Test
    public void test11() throws Exception {
        //指定ES集群
        Settings settings = Settings.builder().put("cluster.name", "my-application").build();

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

        MultiMatchQueryBuilder builder = QueryBuilders.multiMatchQuery("duanlian", "address", "interests");
        SearchResponse response = client.prepareSearch("lib3")
                .setQuery(builder)
                .setSize(3)
                .get();

        SearchHits hits = response.getHits();

        for (SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());

            Map<String, Object> map = hit.getSourceAsMap();

            for (String key : map.keySet()){
                System.out.println(key +" = " +map.get(key));
            }
        }
    }

    //term查询
    @Test
    public void test12() throws Exception {
        //指定ES集群
        Settings settings = Settings.builder().put("cluster.name", "my-application").build();

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

        TermQueryBuilder builder = QueryBuilders.termQuery("interests", "duanlian");
        SearchResponse response = client.prepareSearch("lib3")
                .setQuery(builder)
                .setSize(2)
                .get();
        SearchHits hits = response.getHits();
        for (SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());
        }


    }

    //terms查询
    @Test
    public void test13() throws Exception {
        //指定ES集群
        Settings settings = Settings.builder().put("cluster.name", "my-application").build();

        //创建访问ES服务器的客户端
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.123.101"),9300));
        TermsQueryBuilder builder = QueryBuilders.termsQuery("interests", "duanlian","hejiu");
        SearchResponse response = client.prepareSearch("lib3")
                .setQuery(builder)
                .setSize(2)
                .get();
        SearchHits hits = response.getHits();
        for (SearchHit hit : hits){
            System.out.println(hit.getSourceAsString());
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_41851454/article/details/81389453