-
创建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();
}
文章评论