我试图了解如何在Elasticsearch上优化索引。让我阐明我的需求;
indexA
和indexB
(两个索引的大小大致相同)所以我的问题是,如何使用这6台机器优化写入操作?
indexA
的3台机器和indexB
的3台机器?或
indexA
和indexB
?和
先感谢您
最佳答案
这取决于,但让我根据您的问题陈述作出指示,得出以下假设:
为了获得更好的索引性能,第一件事是您可能希望为索引使用单个分片(除非您正在使用路由)。但是由于您有6个具有单个分片的服务器,这会浪费资源,因此您可以为indexA和indexB分别分配3个分片。这是针对当前方案,但建议使用约10个分片(以确保将来的可伸缩性和数据大小相关)
关闭副本(如果可能,因为索引请求会等待副本响应然后返回)。尽管在生产环境中,强烈建议至少有一个副本以实现高可用性。
将刷新率设置为“-1”或至少设置为更大的数字,例如“30m”。 (如果这样做,您将丢失NRT搜索,但是正如您所提到的,您担心索引编制)
如有,请转到index warmers。
避免在字段映射中使用“doc_values”。 (尽管这对于减少搜索期间的内存占用量是有益的,但在索引期间准备字段值时,它将增加索引时间)
如果可能/不需要,请在映射中禁用“规范”
最后阅读this。
请注意:上述某些方法会影响您的搜索效果。
关于indexing - 如何优化Elasticsearch的索引编制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896332/