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"

    }

}

posted on 2018-08-22 15:25  啊哈哈哈哈-  阅读(1929)  评论(0编辑  收藏  举报