如何优化 elasticsearch 上的索引?

How to optimize indexation on elasticsearch?

我想了解如何在 elasticsearch 上优化索引。让我澄清一下我的需求;

所以我的问题是,如何使用这 6 台机器优化写入操作?

提前致谢

视情况而定,但让我根据您的问题陈述确定一个方向,这导致了以下假设:

  • 您想做更多的写操作(不担心搜索性能)
  • 两个索引在同一个集群中
  • 将来可以添加更多系统

为了获得更好的索引性能,首先您可能希望为您的索引使用单个分片(除非您正在使用路由)。但是因为你有 6 个服务器只有一个分片会浪费资源所以你可以为每个 indexA 和 indexB 分配 3 个分片。这是针对当前情况的,但建议有 ~10 个分片(为了将来的可扩展性和数据大小而定)

关闭副本(如果可能,因为索引请求在返回之前等待副本响应)。尽管在生产环境中,强烈建议至少有一个副本以实现高可用性。

将刷新率设置为“-1”或至少设置为更大的数字,比如“30m”。 (如果你这样做,你将失去 NRT 搜索,但正如你所提到的,你担心索引)

有的话转index warmers

避免使用 "doc_values" 进行字段映射。 (虽然它有利于减少搜索期间的内存占用,但它会增加索引时间,因为它会在索引期间准备字段值)

如果 possible/not 需要在映射中禁用 "norms"

最后阅读this

注意事项:上述某些方法会影响您的搜索性能。