查询类型
queryType |
描述 |
后台代码样例 |
matchAllQuery |
全匹配 |
QueryBuilder qb = matchAllQuery(); |
matchQuery |
单个匹配 |
QueryBuilder qb = matchQuery( "name", "kimchy elasticsearch" ); |
multiMatchQuery |
多字段单值匹配 |
QueryBuilder qb = multiMatchQuery( "kimchy elasticsearch", "user","message" ); |
wildcardQuery |
模糊匹配 |
WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery("empname","*emp*"); |
复合查询类型
boolType |
描述 |
后台代码样例 |
AND |
与 |
BoolQueryBuilder subCodeQuery = QueryBuilders.boolQuery(); WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery("empname","*emp*"); WildcardQueryBuilder queryBuilder2 = QueryBuilders.wildcardQuery("gender","*male*"); subCodeQuery.must(queryBuilder1); subCodeQuery.must(queryBuilder2); |
OR |
或 |
类同(subCodeQuery.should) |
分页
通过from和size参数进行分页。From定义查询结果开始位置,size定义返回的hits(一条hit对应一条记录)最大数量。
RestFul样例 |
后台代码样例 |
{ "from" : 0,"size" : 10, "query" : { "term" : { "user": "kimchy" } } } |
SearchResponse response = client.prepareSearch("dept") .setTypes("employee") .setQuery(queryBuilder) .setFrom(0).setSize(2) .execute() .actionGet(); |