查询操作
基础查询
// 查询的参数有两种方式传递
// 第一种:直接在地址中填写参数
curl -X GET http://127.0.0.1:9200/{index_name}/_search?q=title:"小米"
// 第二种:放在请求体中(推荐这种方式)
curl -X GET http://127.0.0.1:9200/{index_name}/_search -d '{
// 查询条件
"query":{
"match":{
//查询字段和查询目标
"category":"小米"
}
},
// 从第几个开始查询
"from":0,
// 每页显示几条
"size":2,
// 显示字段
"_source":["title","price"],
// 排序
"sort":{
// 排序字段
"price": {
// 排序规则 asc/desc
"order":"asc"
}
}
}'
多条件查询&范围查询
// 同时满足条件查询
curl -X GET http://127.0.0.1:9200/{index_name}/_search -d '{
"query":{
// 说明是条件查询
"bool":{
// and 条件查询(两个条件都必须满足)
"must":[
{
"match":{
// 匹配
"category":"小米"
}
},{
"match":{
"title":"手"
}
}
]
}
}
}
'
// 满足任意条件查询
curl -X GET http://127.0.0.1:9200/{index_name}/_search -d '{
"query":{
// 说明是条件查询
"bool":{
// or 条件查询(两个 match 命中任意一个都可以)
"should":[
{
"match":{
// 匹配
"category":"小米"
}
},{
"match":{
"title":"手"
}
}
]
}
}
}
'
// 范围查询
curl -X GET http://127.0.0.1:9200/{index_name}/_search -d '
{
"query":{
// 说明是条件查询
"bool":{
// 范围查询
"filter":{
"range":{
// 字段说明
"price":{
// 查询条件 gt=大于
"gt":2000
}
}
}
}
}
}
'
完全匹配&高亮查询&全文查询
curl -X GET http://127.0.0.1:9200/{index_name}/_search -d '
{
"query":{
// 完全匹配,(如果不使用完全匹配,ES 会把 “小米” 分解为 “小“,”米“ 进行查询)
"match_phrase":{
"category":"小米"
}
},
// 高亮显示
"highlight":{
"fields":{
"category":{}
}
}
}'
聚合操作
curl -X GET http://127.0.0.1:9200/{index_name}/_search -d '
// 聚合操作
"aggs": {
// 分组名称,随意自定义
"price_group":{
// 进行聚合分组
"terms":{
// 字段
"field": "price"
}
},
// 名称,随意自定义
"price_avg":{
// 求平均值
"avg":{
// 字段
"field":"price"
}
}
}'