Elasticsearch进阶使用
查询
地址查询
1
2
3
4
5查询customer下external
_search表示查询
q=*表示所有
sort=account_number:asc 按照account_number列升序排列
GET customer/external/_search?q=*&sort=account_number:asc请求体查询 DSL
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82GET customer/_search
{
"query":{
"match_all":{
}, 查询所有
"match":{
"字段名":"匹配值" 查询某个字段包含模糊匹配写法一样 即倒排索引进行分词 如果中间加空格 会查出包含第一个匹配值或者第二个匹配值的记录
"字段名.keyword":"匹配值" 精确查找一模一样
},
"term":{
与match相同 建议非文本用term 文本用match
},
"match_phrase":{
"字段名":"匹配值" 不分词 多个匹配值也是整体包含
},
"multi_match":{
多字段匹配 分词
"query":"查询条件(匹配值)",
"fields":[字段名(多个)]
},
"bool":{
符合查询 即组合查询
"must":[
必须满足 可以写多个上面的匹配
{
"match":{
"字段名":"匹配值"
}
},
{
"match":{
"字段名":"匹配值"
}
},
{
"range":{
"字段名":{
"gte":值,
"lte":值
} 范围 例如年零 在18-20之间
}
},
],
"must_not":[必须不满足 写法同上],
"should":[满足不满足都行 写法同上],
"filter":[与上区别在于不计算相关性得分 满足 写法同上]
},
"aggs":{
聚合
"聚合名字":{
"聚合类型" terms表示分组 avg表示平均值:{
"field":"字段名",
"size": 可写可不写 平均值时不写
}
可以进行嵌套聚合 比如分组后求每组平均值
}
}
},
"sort":[
{
"account_number":"asc"
}
],
"from":0,默认是返回10条数据 from表示从哪开始,size表示要多少条数据
"size":5
"_source":["字段名1","字段名2"] 表示返回数据只要哪些字段
}
mapping 映射
1 | 查询customer的所有映射 类型 |
分词
利用分词器实现 内置有 默认的是英文
1 | POST _analyze |
安装ik分词器
1 | # 进入elasticsearch 容器 |
自定义分词器词库
nginx安装参考 http://t.csdn.cn/mXkmnhttp://t.csdn.cn/mXkmn
1 | #在nginx的挂载目录下的html创建es文件 |
作者声明
1 | 如有问题,欢迎指正! |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 jhj-coding!
评论