ElasticSearch查询:字符串查询(7)

编程步骤

  • 创建Settings配置信息对象

  • 创建ES传输客户端对象

  • 创建搜索请求构建对象(封装查询条件)

    // 设置查询条件(字符串查询)
    searchRequestBuilder.setQuery(QueryBuilders.queryStringQuery("搜索服务"));
  • 执行请求,得到搜索响应对象

  • 获取搜索结果

  • 迭代搜索结果

  • 释放资源

/**
     * 字符串查询: queryStringQuery
     *   1)关键字会进行分词。使用什么分词器,取决于索引库的映射!!!
     *   2)关键词会匹配所有Field
     *
     * @throws Exception
     */
    @Test
    public void test2() throws Exception {
        //1. 创建Settings配置信息对象
        Settings settings = Settings.builder().put("cluster.name","elasticsearch").build();

        //2. 创建ES传输客户端对象
        TransportClient transportClient = new PreBuiltTransportClient(settings);
        transportClient.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"),9300));

        //3. 创建搜索请求构建对象(封装查询条件)(***)
        SearchRequestBuilder searchRequestBuilder = transportClient.prepareSearch("blog3").setTypes("article");
        //3.1 设置查询条件
        //matchAllQuery: 查询所有文档数据
        searchRequestBuilder.setQuery(QueryBuilders.queryStringQuery("远程调用"));

        //4. 执行请求,得到搜索响应对象
        SearchResponse searchResponse = searchRequestBuilder.get();

        //5. 获取搜索结果
        SearchHits hits = searchResponse.getHits();

        //6. 迭代搜索结果
        System.out.println("总命中数:"+hits.totalHits);
        for(SearchHit hit:hits){
            //取出结果
            //System.out.println(hit.getSourceAsMap());

            System.out.println(hit.getSourceAsMap().get("id"));
            System.out.println(hit.getSourceAsMap().get("title"));
            System.out.println(hit.getSourceAsMap().get("content"));

            System.out.println("===================");
        }

        //7. 释放资源
        transportClient.close();

    }

 

 

 

本站资源除特别声明外,转载文章请声明文章出处
东泰博客 » ElasticSearch查询:字符串查询(7)

发表评论