惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
GbyAI
GbyAI
L
LangChain Blog
B
Blog
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
U
Unit 42
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
小众软件
小众软件
I
InfoQ
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
C
Check Point Blog

祈雨的笔记

安全多方计算MPC spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400
elasticsearch查询DSL
祈雨的笔记 · 2018-09-09 · via 祈雨的笔记

全部搜索

1
2
3
4
5
6
GET /index/type/_search
{
"query": {
"match_all": {}
}
}

例如:

1
2
3
4
5
6
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
}
}

分页搜索

1
2
3
4
5
6
7
8
GET /index/type/_search
{
"query": {
xxx
},
"from": 0,
"size": 10
}

例如:

1
2
3
4
5
6
7
8
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"from": 0,
"size": 10
}

mget

1
2
3
4
5
6
7
POST /index/type/_mget
{
"docs":[
{"key1":"value1","key2":"value2"},
{"key3":"value3","key4":"value4"}
]
}

例如:

1
2
3
4
5
6
7
POST /ecommerce/product/_mget
{
"docs":[
{"_index":"ecommerce","_id":1},
{"_index":"ecommerce","_id":2}
]
}

搜索返回指定字段

1
2
3
4
5
6
7
GET /ecommerce/product/_search
{
"query": {
xxx
},
"_source": ["key1","key2"]
}

例如:

1
2
3
4
5
6
7
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"_source": ["name","price"]
}

指定字段分词搜索

1
2
3
4
5
6
7
8
GET /index/type/_search
{
"query": {
"match": {
"key1": "value1"
}
}
}

例如:

1
2
3
4
5
6
7
8
GET /ecommerce/product/_search
{
"query": {
"match": {
"name": "牙膏"
}
}
}

查询排序

1
2
3
4
5
6
7
8
9
10
11
12
13
GET /index/type/_search
{
"query": {
xxx
},
"sort": [
{
"key1": {
"order": "asc|desc"
}
}
]
}

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"price": {
"order": "desc"
}
}
]
}

查询filter

filter不涉及积分计算,因此filter的效率比普通查询的效率要高。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GET /ecommerce/product/_search
{
"query": {
"bool": {
"must": {
"match":{
"name":"牙膏"
}
},
"filter": {
"range": {
"price": {
"gt": 10,
"lte": 30
}
}
}
}
}
}

查询phrase

跟match全文检索相反,全文检索会将搜索输入分词拆解,去倒排索引中一一匹配,只要有一个分词能在倒排索引中匹配上,就可以作为结果返回。

phrase不会将搜索输入分词,必须在指定字段值中完全包含搜索输入才算搜索匹配,作为结果返回。

例如:在match全文检索模式下,高露洁可以匹配上高露洁牙膏佳洁士牙膏;在phrase模式下,可以匹配上高露洁牙膏,但匹配不上佳洁士牙膏

1
2
3
4
5
6
7
8
GET /ecommerce/product/_search
{
"query": {
"match_phrase": {
"name": "高露洁"
}
}
}

查询高亮

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"query": {
xxx
},
"highlight": {
"fields": {
"key1": {}
}
}
}

例如:

requset

1
2
3
4
5
6
7
8
9
10
11
12
13
GET /ecommerce/product/_search
{
"query": {
"match": {
"name": "高露洁"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}

response

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0.8630463,
"hits": [
{
"_index": "ecommerce",
"_type": "product",
"_id": "2",
"_score": 0.8630463,
"_source": {
"name": "高露洁牙膏",
"price": 20
},
"highlight": {
"name": [
"<em>高</em><em>露</em><em>洁</em>牙膏"
]
}
},
{
"_index": "ecommerce",
"_type": "product",
"_id": "1",
"_score": 0.2876821,
"_source": {
"name": "佳洁士牙膏",
"price": 30
},
"highlight": {
"name": [
"佳<em>洁</em>士牙膏"
]
}
}
]
}
}