微屁恩选的是迷雾通,下午两点考的,延迟忽高忽低期间在台中和新加坡节点切换了一次,掉线了 3
次。。。好在重连都挺快的。共 10
题,分为三个集群,cluster1
为三节点,cluster2
、cluster3
为单节点:
集群中的每个机器都是使用 elastic
用户登录,不需要密码。不需要担心权限,启动配置等问题。
集群
cluster1
(未启动,node1 node2 node3
)上有两个索引logs_new
和logs_old
。(我查看了索引的属性,都为3
个主分片,1
个副本)。要求启动集群,并且在不删除索引的情况下达到以下要求:logs_new
的分片只分布在node1
上。logs_old
的分片分布在node2
,node3
上。保持集群状态为
green
1
2
3
4
5
6
7
8
9
10PUT logs_new/_settings
{
"number_of_replicas": 0,
"index.routing.allocation.require._name":"node1"
}
PUT logs_old/_settings
{
"index.routing.allocation.exclued._name":"node1"
}
cluster2
上有索引movie_data
,搜索(title
字段)waynes
和wayne's
的结果不同(),要求将movie_data
的数据reIndex
到 新索引上,并满足以下要求:新索引名为
task2
搜索 (
title
字段)waynes
和wayne's
的相关性得分相同。样例说明中还提到了kings
和king‘s
等带有撇号的单词。所以这里我认为只能使用char_filter
来进行映射。synonym
不太符合题意task2
的字段属性需要和movie_data
保持一致(具体属性记不清,使用GET movie_data/_mapping
将属性抄过来即可。只需给title
字段添加上自己定义的分词器即可)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
34PUT task2
{
"number_of_replicas": 0,
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"char_filter": "my_char_filter",
"tokenizer": "standard",
"filter": [
"lowercase"
]
}
},
"char_filter": {
"my_char_filter": {
"type": "mapping",
"mappings": [
"' => "
]
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "my_custom_analyzer"
}
}
}
}
cluster2
上 的nested
查询,给了一个数组字段,要求创建索引task3
,同样的数据,搜索时不应该返回结果,只提供json
。inspections multi_match
。检索 某个索引的3
个字段,要求其中一个的算分boost
为2
。得分为三个字段的和(most_fields
),只提供json
update_by_query
,字段为4
个字段的拼接,题目没有说加空格。但是展示的案例中是有空格的。dynamic_template
将x_
开头的映射为integer
,string
类型的映射为keyword
。- 聚合,地震那题,但是改动了下,要求返回每个月的最大震级和最大深度,一个
date_histogram
,子聚合两个max
就搞定了,只提供json
- 备份与恢复,在
cluster2
上指定的目录下创建备份。按照给定的仓库名、备份名称进行创建。只要求备份movie_data
索引 - 集群
RBAC
,在cluster3
上配置,elastic
和kibana
的用户密码都为password
。创建用户susan
,Full_name
为Susan
,邮箱为 **certification@elastic.co**,给susan
赋予kibana_user
的权限。(做这题的时候很奇怪。。我配好之后,用elastic
登录进去,发现每次不到2
分钟就会自动退出。我加用户还没点确定,登录状态就已经失效了。。。) - 普通查询,对
movie_data
进行match_phrase
查询, 指定字段高亮 + 排序