10、Elasticsearch查询、过滤与排序全解析

Elasticsearch查询、过滤与排序全解析

1. GET请求带请求体

某些语言(如JavaScript)的HTTP库不允许GET请求带有请求体,实际上,一些用户对GET请求可以有请求体感到惊讶。RFC 7231并未定义带请求体的GET请求会怎样,所以有些HTTP服务器允许,有些(尤其是缓存代理)则不允许。

Elasticsearch的开发者倾向于使用GET进行搜索请求,因为他们觉得GET比POST更能描述“检索信息”这一动作。但由于带请求体的GET并非被普遍支持,搜索API也接受POST请求,例如:

POST /_search
{
  "from": 30,
  "size": 10
}

这个规则适用于任何需要请求体的GET API。

2. 查询DSL

查询DSL是Elasticsearch使用的一种灵活、富有表现力的搜索语言,它通过简单的JSON接口展现了Lucene的大部分强大功能。在生产环境中编写查询时应使用它,它能让查询更灵活、精确、易读且易于调试。

使用查询DSL时,在 query 参数中传递查询,示例:

GET /_search
{
    "query": YOUR_QUERY_HERE
}

空搜索 {} 在功能上等同于使用 match_all 查询子句,它会匹配所有文档:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值