我最近开始在一家使用Elasticsearch的公司工作。尽管它的大多数概念在某种程度上类似于关系数据库,并且我能够理解它们,但我仍然不太了解别名的概念。
我在这里没有发现任何此类问题,Elasticsearch网站上提供的信息也没有太大帮助。
有人可以解释一下别名的含义,理想情况下还包括需要别名的示例吗?
@arhak很好地涵盖了这个话题。(至少)使我理解索引的价值的一个用例是需要删除过时的文档,尤其是在使用基于时间的索引时。
例如,您需要将应用程序的日志保留至少一年。您决定使用基于时间的索引,这意味着您将使用以下格式保存到索引中:2018-02-logs, 2018-03-logs等。为了能够在每个索引中进行搜索,请创建以下别名:
2018-02-logs, 2018-03-logs
POST /_aliases { "actions": [{ "add": { "alias": "current-logs", "indices": [ "2018-02-logs","2018-03-logs" ] } }] }
并查询如下:
GET /current-logs/_search
另一个优点是,您可以很容易地删除过时的值:
POST /_aliases { "actions": [ { "remove": { "alias": "current-logs", "index": "logs_2018-01" }} ] }
和 DELETE /logs_2018-01
DELETE /logs_2018-01