我想了解如何索引可以在elasticsearch进行优化。 让我澄清一下我的需求;
- 我有两个指标分辩了。 比方说,
indexA
和indexB
(两个指标可以看出大致相同的大小) - 我有6个机专用于elasticsearch(我们可以说完全相同的硬件)
- 我elasticsearch使用的最重要的部分是写作,因为我做的实时沉重的写作。
所以我的问题是,我哪能优化使用这些6台机器写操作?
先感谢您
这取决于,但让我带到一个方向,按您的问题陈述而导致以下假设:
- 你希望做更多的写操作(不担心搜索性能)
- 这两个指标是同一集群中
- 在未来更多的系统可以得到补充
为了获得更好的索引性能第一件事情是你可能需要有一个碎片的索引(除非你正在使用的路由)。 但是,既然你有有单碎片将是资源的浪费6个服务器,因此您可以指定3碎片给每个指数A和indexB的。 这是目前的情况,但建议具有约10个碎片(对于未来scalibility和您的数据的大小而定)
关闭副本(如果可能的指标要求等待副本返回前作出回应)。 虽然在生产环境中,强烈建议对高可用性的至少一个副本。
设置刷新率为“-1”或至少是一个大图说“30米”。 (你会失去NRT搜索,如果你这样做,但正如你刚才提到你关心的索引)
之交指数取暖 ,如果您有任何。
避免使用“doc_values”为您字段映射。 (虽然它是用于在搜索时间减少了内存占用利于它会增加你的索引时间,因为它的索引中准备的字段值)
如果可能的话/不需要禁用“规范”在映射
最后看这个 。
警告:您的一些做法上面会影响您的搜索性能。