1. 程式人生 > >Elasticsearch的DSL之比較重要的幾個查詢語句

Elasticsearch的DSL之比較重要的幾個查詢語句

1.  match_all 

{"match_all":{}} 匹配所有的, 當不給查詢條件時,預設。

2. match

進行full text search或者exact value(非string欄位或not_analyzed的欄位),進行匹配

3. multi_match

同時對多個欄位進行同樣的match

{

"multi_match":{

"query":"full text search",

"fields":["title","body"]

}

}

4. range

對number或時間欄位進行

{

"range":{

"age":{

"gte":20,

"lt":30

}

}

}

5. term

對欄位進行確切值(exact value)的查詢,如數字、時間、bool、not_analyzed欄位等。

{"term":{"age":26}}

{"term":{"date":"2014-09-01"}}

{"term":{"public":true}}

{"term":{"tag":"full_text"}}

6. terms

和term一樣, 不同的是,可以指定多個值來進行精確匹配

{"terms":{"tag":["search","full_text","nosql"]}}

7. exists/missing

用來查詢某個欄位是否有值, 類似SQL中的 not is_null/is_null

{

"exists":{

"field":"title"

}

}