ElasticSearch6 学习(五) 使用DSL语句查询
前言:
学习路径//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
}
}
}
}
}
}
可以看到有这么多
记录以上 视频上就介绍了这么一些 常用的
还没有评论,来说两句吧...