0

我已经在 Firebase 上启动了一个新的 Serverless Angular 5 应用程序。

在这个应用程序中,必须维护一些 Elasticsearch 的索引和类型。

我一直在寻找一种解决方案,它可以让我在应用程序部署期间/之后自动自动创建/更新索引和/或类型映射(类似于Rails/Laravel 迁移所做的事情)。

到目前为止,我发现的最接近的东西是策展人工具。

然而,在运行了一些测试之后,我无法实现自动化:

  • 仅当它们不存在时才创建索引和/或类型映射。
  • 仅在必要时更新索引和/或类型映射。

在尝试自己处理这个问题之前,我想知道是否有合适的技术来解决这个问题?

4

1 回答 1

0

Curator 是关于索引管理和清理现有索引的,而不是关于创建的。创建更多的是logstash的领域(这将是一个服务器应用程序)。如果你想成为无服务器,我想你可能必须熟悉 elasticsearch 的 REST API。

您必须执行的步骤并不太难。是否或多或少取决于您何时创建的规则。默认情况下,Logstash 通过查看时间戳、确定索引名称来使用每日轮换,并且(感谢 untergeek)如果该索引不存在,则依赖于弹性的动态索引创建。如果您想手动创建它们,我会留下链接,因为它可以很简单:

PUT index-name

您可以在创建时定义更多设置,但根据您的需要,您可以更简单地使用模板。这使您可以定义映射如何在一般级别上工作。您可以为每个索引或通配符组定义一个模板。您可以显式定义每个映射,或依赖动态映射。定义模板后,创建的与名称模式匹配的新索引将接收这些设置和类型映射。

如果您预期的映射不是很大,动态映射可能会非常好。如果它们很大,请注意,在每个新索引处,动态操作是一项高优先级任务,如果您当前尝试索引大量数据,则可能会使事情陷入困境。

Logstash 有一些不错的示例映射模板(尽管看起来弹性已更改templateindex_patterns6.x 并且他们没有更新模板)。

您可能需要对何时命名索引进行一些完整性检查,但他们的文档会指导您完成大部分所需的 REST 调用。我知道这不是一个很好的答案,所以我希望有人已经在 J​​S 库中这样做了,但希望这对没有人有帮助。

于 2018-03-07T06:31:24.507 回答