(六)ElasticSearch高级查询语法

一. 高级查询

1.1 创建索引

PUT /hszsd

1.2 查询索引

GET /hszsd

1.3 新增类型为user的文档

PUT /hszsd/user/1
{
          "name": "小俊",
          "age": 21,
          "sex": 0,
          "car": "奥迪a6l"
}

PUT /hszsd/user/2
{
          "name": "小红",
          "age": 21,
          "sex": 1,
          "car": "保时捷911"
}


PUT /hszsd/user/3
{
          "name": "小云",
          "age": 28,
          "sex": 0,
          "car": "奥迪A8L"
}

PUT /hszsd/user/4
{
          "name": "小腾",
          "age": 50,
          "sex": 0,
          "car": "奔驰S级"
}

PUT /hszsd/user/5
{
          "name": "小名",
          "age": 48,
          "sex": 0,
          "car": "宝马五系"
}

1.4 查询类型为user的文档

GET /hszsd/user/_search

1.5 修改文档

PUT /hszsd/user/1?version=2
{
  "name": "何金荣",
  "sex": 0,
  "age": 28,
  "job": "JAVA架构师"
}

1.6 按ID查询文档

GET /hszsd/user/1

1.7 删除索引

DELETE /hszsd

1.8 查询年龄为年龄21岁

GET /hszsd/user/_search?q=age:21

1.9 查询年龄30岁-60岁之间

GET /hszsd/user/_search?q=age[30 TO 60]

1.10 查询年龄30岁-60岁之间并且年龄降序、查询前5条数据

GET /hszsd/user/_search?q=age[30 TO 60]&sort=age:desc&from=0&size=5

1.11 查询年龄30岁-60岁之间 并且年龄降序、前5条,只返回name和age字段

GET /hszsd/user/_search?q=age[30 TO 60]&sort=age:desc&from=0&size=5&_source=name,age

二. DSL语言查询与过滤

2.1 什么是DSL语言

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

2.2 根据名称精确查询姓名

GET /hszsd/user/_search
{
  "query": {
    "term": {
      "name": "何金荣"
    }
  }
}
##term是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇

2.3 根据汽车名称模糊查询

GET /hszsd/user/_search
{
  "from": 0,
  "size": 2, 
  "query": {
    "match": {
        "car": "奥迪"
      }
  }
}
####match查询相当于模糊匹配,只包含其中一部分关键词就行

2.4 Term与Match区别

Term查询不会对字段进行分词查询,会采用精确匹配。
Match会根据该字段的分词器,进行分词查询。

2.5 使用filter过滤年龄

GET /hszsd/user/_search
{
	"query": {
		"bool": {
			"must": [{
				"match_all": {}
			}],
			"filter": {
				"range": {
					"age": {
						"gt": 21,
						"lte": 51
					}
				}
			}
		}
	},
	"from": 0,
	"size": 10,
	"_source": ["name", "age"]
}

三. Kibana演示

在这里插入图片描述

四. 演示文档下载

链接: https://pan.baidu.com/s/14lq9aO757nXqC30ZWgOWSA 提取码: njwg

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值