es_demo
6.3 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
0x01 内存调整
http://bigbo.github.io/pages/2015/04/10/elasticsearch_config/
分词配置
https://github.com/hangxin1940/elasticsearch-cn-out-of-box/blob/master/config/elasticsearch.yml
http://chenlinux.com/tags.html#logstash-ref
搜索命令:
GET books/_mapping?pretty //搜索books索引里面的结构,每个字段的详细信息
GET logstash-2015.04.22/_mapping?pretty //搜索logstash-2015.04.22索引里面的结构,每个字段的详细信息
GET logstash-2015.04.22/_search?pretty//搜索logstash-2015.04.22所有的数据
GET books/_search?pretty
GET logstash-2015.04.09,logstash-2015.04.10/WindowsLog/_search?pretty //搜索logstash-2015.04.9与logstash-2015.04.10索引里下面类型为logstash-2015.04.10所有的数据
****把登陆日志单独分离
GET _search?pretty //查询全部的索引数据
//分析索引,查看索引具体是什么
GET logstash-2015.04.09/_analyze?field=message
{
'服务器超时'
}
//结果排序
sort=字段:asc
//结果排序 得分
sort=字段:asc&track_source=true
//设置超时:默认情况没有超时
timeout=5s
//查询结果窗口
size5&from=10
//小写扩展
二.索引,分片,副本
一般来说一个索引默认有5个分片,1个分片有1个副本
//设置自动是否自动创建索引,自动创建索引的名字可能引发异常
action.auto_create_index:false
//创建已an,a开头的索引
action.auto_create_index:-an*,+a*,-*
//手动设置分片与副本数量(创建一个xxx索引,1个分片2个副本)
xput /xxx
{
"settings":{
"number_of_shards":1,
"number_of_replicas":2
}
}
//防止省略掉数据类型的相关信息,可以通设置numerice_detection:true
PUT /XXX
{
"mappings":
{
"numeric_detection":true
}
}
//设置数据格式
PUT
{
"mappings":{
"dynamic_date_formats":["yyyy-MM-dd hh:mm"]
}
}
//设置每个字段的类型
PUT
{
"mappings":{
"article":{
"dynamic":"false",
"properties":{
"id":{"type":"string"}
"content":{"type":"string"}
"author":{"type":"string"}
}
}
}
}
1.索引结构映射:
PSOT /XXX你的索引 @post.json
通过posts.json定义索引结构
{
"mappings":{
"post":{
"properties":
{
"id":{"type":"long","store":"yes","precision_step":"0"}
"name":{"type":"string","store":"yes","index:"analyzed","precision_step":0}
}
}
}
}
三、段合并
时间越长,越来越多的段被创建,因此,搜索性能会降低,(因为包括没有删除的文件)这时候就用段
系统默认会有
1.合并策略
2.合并调度器
3.合并因子
四、elasticeearch搜索
0.过滤字段查询
{
"query":{ "query_string":{"query":"title:xxxxx"}}
}
分页属性 from从第多少条开始,默认为0,size,查询多少条,默认为10
{
"from":9
"size":20
"query":{
}
}
1.文档版本属性 version:true
2.过滤字段 fields 如果没有指定则:返回_source
}
GET /index-namewangwei2312/_search?pretty=true
{
"fields": ["CheckId","Info","Tags"],
"size": 2,
"query": {"query_string": {
"query": "Tags!=\" \""
}}
}
3.部分字段 include 和 exclude属性,可以基于属性来包含或排除字段,例如:查询已tt开头,排除已xx揭开它的字段
{
}
五,使用聚合
1.聚合查询使用aggs 聚合使用stats key时候,使用的字段不能用字符串类型,key为terms 时候,使用字段能用字符串类型,
例子:words统计每种AgentId聚合的而数量
GET /hzins.applicationlog.2015.05.07/_search?search_type=count&pretty
{
"aggs" : {
"agentIds" : {
"stats" : {
"field" : "ReceivedOnUtc"
}
},
"words":{
"terms":{
"field":"AgentId"
}
}
}
}
2.聚合区分2种聚合:
a.度量聚合,接收一个输入文档集,并生成至少一个统计值
(min,max,sum,avg)聚合,不能为字符串类型字段
value_count聚合,使用字符串的字段做聚合
{
"aggs": {
"number_of_items": {
"value_count": {
"field": "AgentId"
}
}
}
}
c.桶聚合
terms聚合,字段中每个词条返回一个桶,这允许你生成字段每个值得统计
"aggs": {
"availability": {
"terms": {
"field": "EventType"
}
}
}
****复杂例子:
1.根据2个字段纬度聚合查询,且按创建时间排序
GET hzins.applicationlog.2015.06.19/_search?search_type=count
{
"aggs": {
"AgentIds": {
"terms": {
"size": 95,
"field": "AgentId"
},
"aggs": {
"terms": {
"terms": {
"field": "EventType",
"size": 90
}
}
}
}
}
,"sort": [
{
"CreateTime": {
"order": "asc"
}
}
]
}
2.根据多个字段分割查询,且按创建时间排序
GET hzins.applicationlog.2015.06.17test2/_search?pretty=true
{
"from":1,
"size":50,
"query":
{
"bool":
{
"must":
[
{
"term":
{
"EventType":
{
"value":"ERROR"
}
}
}
,
{
"term":
{
"AgentId":
{
"value":"cps.jumi18.com"
}
}
}
]
}
}
,"sort": [
{
"CreateTime": {
"order": "desc"
}
}
]
}
更多例子:
GET hzins.applicationlog.2015.06.19/_search
{ "from":0, "size":15,"query":{ "bool": {"must":[{"term":{ "EventType":{"value":"ERROR"} } },{"term":{ "AgentId":{"value":"m.hzins.com"} } },{"range":{"CreateTime":{"gte":"2015-06-23 00:00:00","lte":"2015-06-23 23:59:59"}}}]}},
"sort":[{"CreateTime":{"order":"desc"}}]
}
有时候可能属性没有生效则需要下面操作
PUT hzins.applicationlog.2015.06.19test/hz_app_log/_mapping
{
"properties": {
"CreateTime": {"type": "date", "format": "YYYY-MM-DD HH:mm:ss"}
}
}