ElasticSearch6 学习(五) 使用DSL语句查询

前言:

学习路径:https://www.bilibili.com/video/av45584656  码家学院的视频

这次是记录ElasticSearch6 使用DSL语句去查询数据


目录

1.什么是DSL语言

2.使用DSL语言去查询数据

1.根据某个字段去精确查找

2.使用模糊查询

3.使用过滤器


1.什么是DSL语言

es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。
由于DSL查询更为直观也更为简易,所以大都使用这种方式。
DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。

2.使用DSL语言去查询数据

1.根据某个字段去精确查找

POST /yizhigou/dog/_search
{
    "query":{
       "term":{
       "type":"value" #字段 和要查询的 数值
    }
  }
}

比如我这根据名称查找

POST /yizhigou/dog/_search
{
    "query":{
       "term":{
       "name":"guoergou"
    }
  }
}

可以看到查询出来:

2.使用模糊查询

和精准查询差不多 只不过换了个查询的语句

POST /yizhigou/guoergou/_search
{
"query":{
  "match":{
    "type":"value"
          }
     }
}

比如我模糊查询兰博基尼的

我先创建了一个 兰博基尼大牛和一个兰博基尼小牛

然后使用模糊查询 兰博基尼

{
 "query":{
	"match":{
		"name":"兰博基尼"
 	}
  }
}

可以看到两个都可以查出来

注意:

Term查询不会对字段进行分词查询,会采用精确匹配。

Match会根据该字段的分词器,进行分词查询。

所以这和前面使用简单查询到时候没有使用名字查询的原因

 

3.使用过滤器

filter过滤 可以来过滤一些条件 比如过滤掉参数不需要的 比如如下的 过滤器后面是范围 

过滤出来年纪在44 - 88的

{
  "query": { 
  "bool":{
    "filter":{
      "range":{
        "age":{
          "gt":44,
          "lte":88
        }
      }
    }
   }
  }
}

可以看到有这么多

记录以上 视频上就介绍了这么一些 常用的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值