一尘不染

elasticsearch中的别名是什么?

elasticsearch

我最近开始在一家使用Elasticsearch的公司工作。尽管它的大多数概念在某种程度上类似于关系数据库,并且我能够理解它们,但我仍然不太了解别名的概念。

我在这里没有发现任何此类问题,Elasticsearch网站上提供的信息也没有太大帮助。

有人可以解释一下别名的含义,理想情况下还包括需要别名的示例吗?


阅读 298

收藏
2020-06-22

共1个答案

一尘不染

@arhak很好地涵盖了这个话题。(至少)使我理解索引的价值的一个用例是需要删除过时的文档,尤其是在使用基于时间的索引时

例如,您需要将应用程序的日志保留至少一年。您决定使用基于时间的索引,这意味着您将使用以下格式保存到索引中: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

2020-06-22