介绍
本章会介绍怎样将查询语句通过http request body发送给es,并介绍简单的DSL
POST /movies/_search?ignore_unavailable=true
{
"profile": true,
"query": {
"match_all": {}
}
}
- 分页
POST /kibana_sample_data_ecommerce/_search
{
"from":10,
"size":20,
"query":{
"match_all": {}
}
}
使用from 和size两个参数可以使用es的分页的功能,需要注意,获取靠后的分页时成本是较高的
- 排序
-- 排序的字段类型最好是数字型或者日期型
POST kibana_sample_data_ecommerce/_search
{
"sort":[{"order_date":"desc"}],
"query":{
"match_all": {}
}
}
- _source filter
-- 对于不需要的返回值,可以进行过滤以提升性能
POST kibana_sample_data_ecommerce/_search
{
"_source":["order_date"],
"query":{
"match_all": {}
}
}
![](https://img.haomeiwen.com/i16754111/bbf83749f274d66b.png)
我们可以看到返回结果中只包含指定的字段
- 查询表达式
POST movies/_search
{
"query": {
"match": {
"title": "last christmas"
}
}
}
该查询会匹配last OR christmas
POST movies/_search
{
"query": {
"match": {
"title": "last christmas"
“operator": "and"
}
}
}
该查询会匹配last AND christmas
- 短语搜索
POST movies/_search
{
"query": {
"match_phrase": {
"title":{
"query": "one love",
"slop": 1
}
}
}
}
该查询会匹配”last christmas“~1
![](https://img.haomeiwen.com/i16754111/4b595719ec45c03a.png)
总结
本章介绍了使用es的request body 以及DSL
网友评论