按from为test条件进行查询
GET test/_doc/_search?q=from:test
与上面查询相同
GET test/_doc/_search
{
"query": {
"math": {
"from":"test"
}
}
}
模糊查询
#查所有,没有条件限制
GET test/_doc/_search
{
"query": {
"math_all": {}
}
}
#短语查询query为关键词,后面跟查询条件
GET test/_doc/_search
{
"query": {
"math_phrase": {
"title": {
"query": "中国"
}
}
}
}
#中国和人口这两个词之间最小的距离2为值,slop为关键词,值为距离单位
GET test/_doc/_search
{
"query": {
"math_phrase": {
"title": {
"query": "中国人口",
"slop": 2
}
}
}
}
#分词查询单词包含部分desc,跟查询条件
GET test/_doc/_search
{
"query": {
"math_phrase_prefix": {
"desc": "bea"
}
}
}
多条件查询之bool
#must是和处理并且的意思
GET t3/_doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "beautiful"
}
},
{
"match": {
"desc": "beautiful"
}
}
]
}
}
}
#should是或者的意思
GET t3/_doc/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"title": "beautiful"
}
},
{
"match": {
"desc": "beautiful"
}
}
]
}
}
}
#must_not条件都不是取反
GET lqz/_doc/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"from": "gu"
}
},
{
"match": {
"tags": "可爱"
}
},
{
"match": {
"age": 18
}
}
]
}
}
}
#filter跟bool为一组,range为关键参数,大于gt小于lt大于等于gte小于等于lte范围内是大于gte小于lte
GET lqz/_doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"from": "gu"
}
}
],
"filter": {
"range": {
"age": {
"lt": 30
}
}
}
}
}
}
#match查的短语会分词
GET w10/_doc/_search
{
"query": {
"match": {
"t1": "Beautiful girl!"
}
}
}
#term查的不会分词,精确匹配,比如数字,日期,布尔值或 not_analyzed(未经分析的文本数据类型)
GET w10/_doc/_search
{
"query": {
"term": {
"t1": "girl"
}
}
}
#terms允许指定多个匹配条件
GET w10/_doc/_search
{
"query": {
"terms": {
"t1": ["beautiful", "sexy"]
}
}
}
#range过滤是照指定范围查找一批数据
{
"range": {
"age": {
"gte": 20,
"lt": 30
}
}
}
排序,关键词sort(不是所有字段都支持排序,只有数字类型,字符串不支持)
#降序order
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
#升序
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
#全部查询match_all
GET lqz/_doc/_search
{
"query": {
"match_all": {
}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
#_source查询结果过滤,query同级。指定某几个字段保留例保留["name","age"]
GET lqz/_doc/_search
{
"query": {
"match_all": {
}
},
"_source":["name","age"]
}
分页查询,from size参数 两页两条从第二条开始,取两条
GET lqz/_doc/_search
{
"query": {
"match_all": {}
},
"from": 2,
"size": 2
}
高亮显示highlight关键词query同级
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"highlight": {
"pre_tags": "<b class='key' style='color:red'>",
"post_tags": "</b>",
"fields": {
"from": {}
}
}
}
avg平均写法,aggs为固定写法my_avg为重命名,avg函数,以age字段计算
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_avg": {
"avg": {
"field": "age"
}
}
},
"_source": ["name", "age"]
}
max最大写法,aggs为固定写法my_max为重命名,max函数,以age字段计算
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_max": {
"max": {
"field": "age"
}
}
},
"_source": ["name", "age"]
}
min最小写法,aggs为固定写法my_min为重命名,min函数,以age字段计算
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_min": {
"min": {
"field": "age"
}
}
},
"_source": ["name", "age"]
}
sum求和写法,sum为固定写法my_sum为重命名,sum函数,以age字段计算
GET lqz/_doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_sum": {
"sum": {
"field": "age"
}
}
},
"_source": ["name", "age"]
}
分组aggs固定写法,age_group为重命名,range为按field类型就行分类,from从…开始,to从…结束
GET lqz/_doc/_search
{
"size": 0, #0为不展示数据结果,只展示数据分类内容,1为展示一条1以上以此类推
"query": {
"match_all": {}
},
"aggs": {
"age_group": {
"range": {
"field": "age",
"ranges": [
{
"from": 15,
"to": 20
},
{
"from": 20,
"to": 25
},
{
"from": 25,
"to": 30
}
]
}
}
}
}