match_all
查询所有
public class EsMatchAll{
public void updateIndex(TransportClient client){
//查询所有(match_all)
QueryBuilder qb = QueryBuilders.matchAllQuery();
SearchResponse sr = client.prepareSearch("lib3")
.setQuery(qb)
.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 query
指定单个字段条件匹配查询
public class EsMatchAll{
public void updateIndex(TransportClient client){
//单个字段条件匹配查询(match)
QueryBuilder qb = QueryBuilders.matchQuery("interests","changge");
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))
}
}
}
}
multiMatchQuery
指定多个字段条件匹配查询
public class EsMatchAll{
public void updateIndex(TransportClient client){
//多个字段条件匹配查询(multiMatchQuery)
QueryBuilder qb = QueryBuilders.multiMatchQuery("changge","address","interests");
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))
}
}
}
}

本文介绍了Elasticsearch中不同类型的查询方法,包括匹配所有文档的match_all查询、针对单个字段的match查询以及针对多个字段的multiMatchQuery查询。通过具体示例展示了如何使用这些查询方法来检索和处理数据。
581

被折叠的 条评论
为什么被折叠?



