您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
elasticSearch创建索引-设置别名(视图)
发布时间:2021-09-03 21:17:33编辑:雪饮阅读()
ElasticSearch上篇中接触到了创建索引的时候附带定义映射。那么在创建索引的时候还可以附带创建别名。
请求正文:
{
"aliases" : {
"alias_1" : {},
"alias_2" : {
"filter" : {
"term" : {"user" : "manu" }
},
"routing" : "manu"
}
}
}
响应正文:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "colleges"
}
那么这样创建以后索引及其别名在elasticSearch-head中呈现的效果如:
这个别名,这里虽然前面还没有接触到,但是从请求正文,这里可以大概理解到别名就相当于mysql中视图的一个概念差不多,因为在请求正文中可以看到定义了两个别名,其中第二个别名有filter过滤条件以及定义了routing,而这个routing类似是与分片有关的,类似于mysql中的索引的概念,那么也就是说这里我个人理解就是这里第二个别名查询的数据会过滤掉user字段为manu的数据,并且会使用上manu的routing(索引)。效率应该会更高。
为了证明上面这个别名猜想,则我们可以创建一些文档到这个刚才创建的索引中并且其中某个文档user字段就给它值为manu。
那么接下来我们分别看看用两个别名取出的效果:
首先是使用别名1查询输出来的数据如:
请求正文:none
响应正文:
{
"hits": {
"hits": [
{
"_id": "3",
"_source": {
"user": "manu"
}
},
{
"_id": "4",
"_source": {
"user": "manu4"
}
},
{
"_id": "5",
"_source": {
"user": "manu5"
}
},
{
"_id": "6",
"_source": {
"user": "nes"
}
}
]
}
}
那么接下来看看别名2查询输出的结果:
请求正文:none
响应正文:
{
"hits": {
"hits": [
{
"_id": "3",
"_source": {
"user": "manu"
}
}
]
}
}
可见我们的猜想得以印证了。
关键字词:elasticSearch,创建索引,别名,视图