一、题目
.在集群上有一个索引 food_ingredient
,搜索需要满足以下要求:
- 三个字段
manufacturer
,name
,brand
都能匹配到文本 cake mix - 高亮 字段
name
,并加标签 - 排序,对字段
brand
正序,_score
降序,返回 20 个文档
# 创建符合条件的 task 索引,设置 field 字段,并写入数据
PUT food_ingredient
{"mappings": {"properties": {"manufacturer":{"type": "text"},"name":{"type": "text"},"brand":{"type": "text"}}}
}# 写入数据
POST food_ingredient/_bulk
{"index":{}}
{"manufacturer": "cake mix", "name": "cake mix", "brand": "cake mix"}
1.1 考点
- must 查询
- 高亮
- 排序
1.2 答案
GET food_ingredient/_search
{"query": {"bool": {"must": [{"match": {"manufacturer": "cake mix"}},{"match": {"name": "cake mix"}},{"match": {"brand": "cake mix"}}]}},"highlight": {"fields" : {"name" : { "pre_tags" : ["<em>"], "post_tags" : ["</em>"] }}}, "sort": [{"brand.keyword": {"order": "asc"}},{"_score": {"order": "desc"}}]
}
二、题目
集群中有 earthquakes
索引,timestamp
字段的格式为 yyyy-MM-dd HH:mm:ss
。对 earthquakes
索引按月分桶,并且对 magnitude
和 depth
进行最大值聚合。
# 创建索引
PUT earthquakes
{"settings": {"number_of_replicas": 0},"mappings": {"properties": {"timestamp":{"type": "date","format": "yyyy-MM-dd HH:mm:ss"},"magnitude":{"type": "float"},"type":{"type":"integer"},"depth":{"type":"float"}}}
}# 导入数据
POST earthquakes/_bulk
{"index":{}}
{"timestamp":"2012-01-01 12:12:12", "magnitude":4.56, "type":1, "depth":10}
{"index":{}}
{"timestamp":"2012-01-01 15:12:12", "magnitude":6.46, "type":2, "depth":11}
{"index":{}}
{"timestamp":"2012-02-02 13:12:12", "magnitude":4, "type":2, "depth":5}
{"index":{}}
{"timestamp":"2012-03-02 13:12:12", "magnitude":6, "type":3, "depth":8}
{"index":{}}
{"timestamp":"1967-03-02 13:12:12", "magnitude":6, "type":2, "depth":6}
2.1 考点
- 分桶聚合
- 指标聚合
2.2 答案
GET earthquakes/_search
{"size": 0,"aggs": {"sales_over_time": {"date_histogram": {"field": "timestamp","calendar_interval": "month"},"aggs": {"max_magnitude": {"max": {"field": "magnitude"}},"max_depth": {"max": {"field": "depth"}}}}}
}