我最近开始在一家使用Elasticsearch的公司工作.虽然它的大部分概念与关系数据库有些相似,而且我能够理解它们,但我仍然不太了解别名的概念.
我在这里没有找到任何这样的问题,Elasticsearch网站上提供的信息也没有多大帮助.
有人可以解释别名是什么,理想情况下包括需要它们的情况的例子吗?
Eir*_*dou 13
@arhak 很好地涵盖了这个话题。一个(至少)让我理解索引价值的用例是需要删除过时的文档,更具体地说是在使用基于时间的索引时。
例如,您需要将应用程序的日志保留至少一年。您决定使用基于时间的索引,这意味着您使用以下格式保存到索引中:2018-02-logs, 2018-03-logs等。为了能够在每个索引中进行搜索,您创建了以下别名:
POST /_aliases
{
"actions": [{
"add": {
"alias": "current-logs", "indices": [ "2018-02-logs","2018-03-logs" ]
}
}]
}
Run Code Online (Sandbox Code Playgroud)
并查询如下:
GET /current-logs/_search
Run Code Online (Sandbox Code Playgroud)
另一个优点是您可以非常轻松地删除过时的值:
POST /_aliases
{
"actions": [
{ "remove": { "alias": "current-logs", "index": "logs_2018-01" }}
]
}
Run Code Online (Sandbox Code Playgroud)
和 DELETE /logs_2018-01
别名就像软链接或实际索引的快捷方式
优点是能够在index2b上构建或重新索引时有一个指向index1a的别名,并且交换它们的时刻是原子的,这要归功于别名,所有代码都应指向该别名
重命名别名是一个简单的删除然后在同一API中添加操作.此操作是原子操作,无需担心别名未指向索引的短时间段:
[编辑]指出@wholevinski别名有其他功能,如:
可以为动作指定多个索引......
所有信息都在您链接的页面中
[EDIT2]更多关于为什么原子性的需要/好处
关键是"零停机时间" https://en.wikipedia.org/wiki/Zero_unscheduled_downtime或https://en.wikipedia.org/wiki/High_availability
https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html
我们将在本书后面详细讨论别名的其他用法.现在我们将解释如何使用它们从旧索引切换到新索引,零停机时间.
| 归档时间: |
|
| 查看次数: |
2654 次 |
| 最近记录: |