我正在研究一种解决方案,用于在 Elastic Search 中为许多开发团队中的许多应用程序存储应用程序日志。每个日志条目的结构与“app”字段相同,以指示应用程序。
#1 目标是在单个“应用程序”中支持高效查询。查询所有应用程序虽然仍然很重要,但将是次要的。
我正在尝试确定什么是最好的:
编辑:在这两种情况下,我都会使用基于时间的索引。
多指标系列
每个“应用程序”都有一系列基于时间的索引(app1-2017-04-01、app1-2017-04-02 等),用户将直接针对这些较小的索引执行搜索。这里的想法是,由于索引的大小较小,也许对它们的查询速度更快?
单一指数系列
使用一个巨大的索引系列来表示所有应用程序日志(例如 logs-2017-04-01、logs-2017-04-02 等)用户将查询“app”字段以缩小搜索结果。
在这种情况下哪个更快?我很好奇额外索引的开销成本
最佳答案
在大多数情况下,多个索引更好:
- 搜索较小的数据集速度更快
- 您在映射结构方面的限制较少。如果您需要为新数据更改它,您可以保留旧数据而无需重新索引,只需为新索引放置新映射
- 它更具可扩展性和灵 active 。您可以将旧索引保存在不同的硬盘驱动器或不同的机器上。
- 如果需要,您仍然可以搜索多个索引。
- 索引的开销很小。如果每个索引有很多文档,则文档比索引元数据占用更多空间。如果没有,您可以花更短的时间来拆分您的日志索引
关于elasticsearch - Elasticsearch - 一个索引还是多个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44700066/