查詢類型
| 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(); |