Day08 Kibana - Query DSL 查询语法介绍

Elasticsearch提供了许多的搜寻语法,让我们能透过这些语法的组合,可以查询出各式各样的结果,接下来就开始介绍一些常用的查询语法,来让大家了解一下。

match_all Query

match_all 表示查询所有数据。在没有指定其它查询方式时,是预设查询方式

{ "match_all": {}}

match Query

match 全文检索的标准查询,会对查询的关键字进行分词,并对每个分词的字串进行查询(预设为or)。

{ "match": { "name": "Jackson Selena" }}

查询栏位name,资料中包含JacksonSelena

multi_match Query

multi_match 可以在在多个栏位来查询资料。

{
    "multi_match": {
        "query":    "Marrakesh Low",
        "fields":   [ "manufacturer", "city_name" ]
    }
}

查询栏位manufacturercity_name,资料中有包含MarrakeshLow这二个关键字。

range Query

range 可查询出落在指定区间的资料

  • gt - 大於
  • gte - 大於等於
  • lt - 小於
  • lte - 小於等於
{
    "range": {
        "age": {
            "gte":  20,
            "lt":   30
        }
    }
}

查询资料中age>=20并且age<30的资料。

term Query

term可以用来精准搜寻,可以是数字、时间、布林值或者是设定了not_analyzed不分词的字串。

{ "term": { "id":     27           }}
{ "term": { "date":   "2014-09-01" }}
{ "term": { "public": true         }}
{ "term": { "tag":    "full_text"  }}

查询id值为27的资料。
查询date值为2014-09-01的资料。
查询public值为true的资料。
查询tag值为full_text的资料。

terms Query

terms和 term 是相同的用法,只是terms可以搜寻多个字串。

{ "terms": { "id": [ 27, 43 ] }}

查询id值为2743的资料。

exists and missing Queries

查询栏位不为空的数据(column is not null)。

{
    "exists":   {
        "field":    "title"
    }
}

查询数据中栏位title不为空的资料。

Reference


<<:  Day 11 运算宝石:EC2 储存资源 EBS Types 方案比较

>>:  [DAY8]k8s必学的设定档-yaml (上)

Day30影片教学:Azure小白如何使用Azure Active Directory Identity protection管好管满

在昨天我们谈完Azure小白想早下班-之-使用Azure Synapse Analytics汇入数P...

Day 23 K-平均演算法 K-Means

介绍: k-平均演算法(英文:k-means clustering,以下简称为 k-means )是...

Day27 go-elasticsearch(一)

今日我们将要介绍ES官方提供go-elasticsearch客户端的基本操作。 go-elastic...

聊聊structure concurrency 结构化并发

前面我们谈了,coroutine的coroutineScope、继承、异常处理和取消,也在文中提到了...

在 Lubuntu 18.04 上安装 CodeBlocks IDE 17.12

写程序,弄个 IDE 真的会方便不少,如果您是要在 ubuntu 20.04 上面使用 Code::...