
Elasticsearch Request Body与Query DSL简介
Request Body Search
- 将查询语句通过 HTTP Resquest Body 发送给 Elasticsearch
- Query DSL
POST /movies,404_idx/_search?ignore_unavailable=true
{
"profile": true,
"query": {
"match_all": {}
}
}
分页
POST /kibana_sample_data_ecommerce/_search
{
"from": 10,
"size": 20,
"query": {
"match_all": {}
}
}
From从下标10开始,获取20个结果,获取考后的翻页成本较高。
排序
对order_date
进行倒序
GET /kibana_sample_data_ecommerce/_search
{
"sort":[{"order_date":"desc"}],
"from": 10,
"size": 20,
"query": {
"match_all": {}
}
}
- 最好在“数字型”与“日期型”字段上排序。
- 因为对于多值类型或分析过的字段排序,系统会选一个值,无法得知该值。
搜索结果过滤
这里只需要数据中的order_date
,name
,category.keyword
的值。
GET /kibana_sample_data_ecommerce/_search
{
"_source":["order_date","name","category.keyword"],
"from": 10,
"size": 20,
"query": {
"match_all": {}
}
}
- 如果 _source 没有存储,那就只返回匹配的文档的元数据
- _source 支持使用通配符 _source[“name“,”desc“]
脚本字段
查询出自定义拼接出的值
GET /kibana_sample_data_ecommerce/_search
{
"script_fields": {
"new_field": {
"script": {
"lang": "painless",
"source":"doc['order_date'].value+'hello'"
}
}
},
"from": 10,
"size": 20,
"query": {
"match_all": {}
}
}
一般可以用于订单中有不同的汇率,需要结合汇率对订单价格进行排序
使用查询表达式 - Match(Or 与 And)
Or
的用法,在下列举例中查询时是Last
or Christmas
的关系
GET /comments/_doc/_search
{
"query":{
"match":{
"comment":"Last Christmas"
}
}
}
And
的用法,在下列举例中查询时是Last
And Christmas
的关系,且不能更改顺序。
GET /comments/_doc/_search
{
"query":{
"match":{
"comment": {
"query":"Last Christmas",
"operator":"AND"
}
}
}
}
短语搜索 - Match Phrase
还有一种,在comment下添加参数如"slop": 1
表示中间可以有一个其他单词或字存在
GET /comments/_doc/_search
{
"query":{
"match_phrase":{
"comment": {
"query":"Last Christmas",
"slop": 1
}
}
}
}
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术