DSL查询语句
1. 概念
在es中搜索是非常重要的核心功能(说白了使用es存储数据主要目的就是为了更好更快更准确的搜索)而Elasticsearch提供了一种json风格的查询语言,称为Query DSL(Query domain-specific language)。查询语言功能很全面能结果我们生产中绝大部分的查询需求。下面跟随笔者一起来学习一下DSL查询的功能。
GET请求: http://ip:port/{
index_name}/{
type}/_search
GET: http://xxx.xx.x.xxx:9200/singers/singer/_search
DSL搜索 请求url是如上固定的,我们只需要修改json类型的查询条件
2. 数据准备
//1. 设置相关映射关系
{
"properties": {
"name": {
//字符串
"type": "text",
"index": "true",
"analyzer": "ik_max_word",
//为name添加 keyword字段用于term精确查找
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
},
"desc": {
//日期类型
"type": "text",
"index": "true",
//分词器
"analyzer": "ik_max_word",
//为desc添加 keyword字段用于term精确查找
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
}
}
}
//2. 填充数据 不会bulk批量插入 见谅
POST http://xxx.xx.x.xx:9200/singers/singer/
{
"id": 42,
"name": "音阙诗听",
"signer_id": 1288409,
"images": "http://y.gtimg.cn/music/photo_new/T001R150x150M000002vALgR3hRRlv.webp",
"height": 1.64,
"bitthday": "1994-10-21",
"status": true,
"desc": "音阙诗听音乐社,成立于2016年11月1日,由殇小瑾与李俊羽发起组织,聚集了全国各地一群对传统与流行音乐有相同和理念的朋友。成员在曲,词,演奏,演唱,后期制作,MV制作,美工,宣传等方面各展其长"
}
3. match条件查询
3.1 查询全部
//查询全部
{
"query": {
"match_all": {
} }
}
3.2 match查询
match 查询可操作文本、数值和日期类型的数据,
{
"query": {