查询类型
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(); |