关于索引:为什么不在ElasticSearch索引中分配多个类型进行记录,而不是分配多个索引?

Why not assign multiple types in an ElasticSearch index for logging, rather than multiple indices?

我目前正在使用ElasticSearch研究一些数据存储策略,想知道为什么要存储日志,此页面指示:

A standard format is to assign a new index for each day.

每天创建一个具有新类型名称(表)的索引(数据库)是否更有意义?

我是从每个索引绑定到不同的Web应用程序的angular来看这个问题的。

在另一种情况下,Web应用程序使用一个索引。该索引中的一种类型用于记录日志(我们目前对SQL Server进行的操作)。这是一个好方法吗?


有趣的想法,是的,您可能可以做到。为什么要使用多个索引呢?如果要控制分片到节点的分配(也许您希望将2015年的全部存储在一组节点上,2014年的存储在另一组节点上),过滤器高速缓存大小之类的事情很重要,那么您可以通过转到单个索引/多映射方法。对于大量应用,该控制可能很重要。 YMMV。

关于"每个索引都与一个不同的Web应用程序绑定"的情绪,别名可以(并且)用于在一个可搜索的伞下收集多个物理索引;您可以每天/每周/无论创建什么索引,例如,logs-20150730,logs-20150731 ...,并将日志别名分配给该系列中的所有索引。净效果与具有单个"索引"相同。

别名方法的妙处在于清除/修剪旧数据是微不足道的;只要索引的内容过期(无论数据保留策略如何),都可以删除该索引。使用多重映射时,您必须删除索引中的必要映射(可操作,但具有相当的I / O侵入性,因为您可能会在分布该映射的每个分片中塞满东西。)