1.关键字查询
@Test
public void testTermQuery() throws Exception{
//1、创建es客户端连接对象
Settings settings=Settings.builder().put("cluster.name", "my‐elasticsearch").build();
TransportClient client=new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"),9300));
//2、设置搜索条件
SearchResponse searchResponse=client.prepareSearch("blog2")
.setTypes("article")
.setQuery(QueryBuilders.termQuery("content", "搜索")).get();
//3、遍历搜索结果数据
SearchHits hits=searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:"+hits.getTotalHits() +"条");
Iterator<SearchHit> iterator=hits.iterator();
while (iterator.hasNext()) {
SearchHit searchHit=iterator.next(); // 每个查询对象
System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
System.out.println("title:"+searchHit.getSource().get("title"));
}
//4、释放资源
client.close();
}
2.字符串查询
@Test
public void testStringQuery() throws Exception{
//1、创建es客户端连接对象
Settings settings=Settings.builder().put("cluster.name", "my‐elasticsearch").build();
TransportClient client=new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"),9300));
//2、设置搜索条件
SearchResponse searchResponse=client.prepareSearch("blog2")
.setTypes("article")
.setQuery(QueryBuilders.queryStringQuery("搜索")).get();
//3、遍历搜索结果数据
SearchHits hits=searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:"+hits.getTotalHits() +"条");
Iterator<SearchHit> iterator=hits.iterator();
while (iterator.hasNext()){
SearchHit searchHit=iterator.next(); // 每个查询对象
System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
System.out.println("title:"+searchHit.getSource().get("title"));
}
//4、释放资源
client.close();
}
3.使用文档id查询
@Test
public void testIdQuery() throws Exception {
//client对象为TransportClient对象
SearchResponse response=client.prepareSearch("blog1")
.setTypes("article")
//设置要查询的id
.setQuery(QueryBuilders.idsQuery().addIds("test002"))
//执行查询
.get();
//取查询结果
SearchHits searchHits=response.getHits();
//取查询结果总记录数
System.out.println(searchHits.getTotalHits());
Iterator<SearchHit> hitIterator=searchHits.iterator();
while(hitIterator.hasNext()) {
SearchHit searchHit=hitIterator.next();
//打印整行数据
System.out.println(searchHit.getSourceAsString());
}
}