DSL语法学习
(1)term和terms查询
(2)match查询
(3)rang范围查询
(4)wildcard查询
(5)fuzzy模糊查询
(6)highlight高亮显示
(7)bool查询
(8)聚合查询
<hr/>
查询:GET
GET/_search{ "query":{"term":{"user":"kimchy"}}}
查询document
#对age进行倒序查询
POST/pigg/_search
{
"query": {"match_all": {}},
"sort": [
{"age": {"order": "desc"}}
]
}
#查询前2条数据,from是从0开始的
POST/pigg/_search
{
"query": {"match_all": {}},
"sort": [
{"age" :{"order": "desc"}
],
"from": 0,
"size": 2
}
关键词查询 (精确查询)
POST/aegis/positions/_search
{
"query": {
"term": {
"title":"米"
}
}
}
分词查询
POST/aegis/positions/_search
{
"query":{
"match":{
"title":"小米"
}
}
}
(_source源,过滤设置,指定结果中所包括的字段有哪些)
POST/aegis/positions/_search
{
"query":{
"match":{
"title":"小米"
}
},
"_source":["title","price"]
}
布尔查询 title是分词,brand是精确
POST/aegis/positions/_search
{
"query":{
"bool":{
"must":[
{
"match":{
"title":"小米"
}
},
{
"term":{
"brand":"米"
}
}
]
}
}
}
过滤器:过滤是针对搜索的结果进行过滤,过滤器主要的判断是文档是否匹配
过滤结果
POST/aegis/positions/_search
{
"query":{
"bool":{
"must":[
{
"match":{
"title":"小米"
}
},
{
"term":{
"brand":"米"
}
}
],
"filter":[
{
"range":{
"price":{
"gte":3298
}
}
}
]
}
}
}
过滤完在排序
POST/aegis/positions/_search
{
"query":{
"bool":{
"must":[
{
"match":{
"title":"小米"
}
},
{
"term":{
"brand":"米"
}
}
],
"filter":[
{
"range":{
"price":{
"gt":3298
}
}
}
]
}
},
"sort":[
{
"price":"desc"
}
]
}
高亮显示
{
"query":{
"bool":{
"must":[
{
"match":{
"title":"小米"
}
},
{
"term":{
"brand":"米"
}
}
],
"filter":[
{
"range":{
"price":{
"gt":3298
}
}
}
]
}
},
"sort":[
{
"price":"desc"
}
],
"highlight":{
"pre_tags":["<tag1>"],
"post_tags":["</tag2>"],
"fields":{
"title":{},
"brand":{}
}
}
}
term query 查询适合keyword,numeric,data
terms,多个关键字查询
{
"query":{
"terms":{
"title":["米","为"]
}
}
}
返回版本号: "version":true
短语查询
match_phrase_prefix前缀
{
"query":{
"match_phrase":{
"title":"小米"
}
}
}
通配符查询
{
"query":{
"wildcard":{
"title":"小*"
}
}
}
模糊查询
{
"query":{
"fuzzy":{
"title":{
"value":"小米"
}
}
}
}
{
"query":{
"match":{
"title":"小米"
}
},
"highlight":{
"fields":{
"title":{}
}
}
}
聚合查询 查询价格的总价
{
"aggs":{
"price_sum":{
"sum":{
"field":"price"
}
}
}
}
聚合查询 根据价格计算数量
{
"size":0,
"aggs":{
"price_sum":{
"terms":{
"field":"price"
}
}
}
}
聚合查询
{
"query":{
"range":{
"price":{
"gt":2799
}
}
},
"aggs":{
"brandGroup":{
"terms":{
"field":"brand.keyword"
},
"aggs":{
"priceAVG":{
"avg":{
"field":"price"
}
}
}
}
}
}
聚合查询:
brand出现错误,FeildData字段被禁用,要设置fielddata=true,或者加brand.keyword
{
"query":{
"match":{
"title":"小米"
}
},
"aggs":{
"all_tags":{
"terms":{
"field":"brand.keyword"
}
}
}
}
聚合查询求平均值,完了再给值 + 10
{
"aggs":{
"avg_price":{
"avg":{
"script":{
"source":"doc.price.value + 10"
}
}
}
}
}
(9)嵌套查询:Nested
创建嵌套对象mapping
PUT /earth_index
{
"mappings":{
"_doc":{
"properties":{
"title": {"type":"text"},
"body": {"type":"text"},
"comments":{
"type":"nested",
"properties":{
"name": {"type":"text"},
"comment": {"type":"text"},
"age": {"type":"short"},
"stars": {"type":"short"},
"date": {"type":"date"}
}
}
}
}
}
}
添加数据
put /earth_index/_doc/1
{
"title":"Nest eggs",
"body":"Making your money work....",
"comment":[
{
"name":"JOhnSong",
"comment":"Great article1",
"age":22,
"stars":4,
"date":"2019-11-13"
},
{
"name":"superqiDream",
"comment":"Great article2",
"age":23,
"stars":5,
"date":"2019-11-14"
}
]
}
非嵌套查询
get /earth_index/_doc/_search
{
"query":{
"bool":{
"must":[
{"match":{"comment.name":"superqiDream"}},
{"match":{"comment.age":23}}
]
}
}
}
POST /earth_index/_doc/_search
{
"query":{
"nested":{
"path":"comment",
"query":{
"bool":{
"must":[
{
"match":{
"comment.name":"superqiDream"
}
},
{
"match":{
"comment.age":31
}
}
]
}
}
}
}
}
新增: POST
修改: PUT
删除:DELETE