【发布时间】:2018-10-11 03:09:57
【问题描述】:
我的 ElasticSearch 不会做一些复杂的查询。我使用 ElasticSearch 只是为了在大型数据集上实现快速搜索性能。
运行良好。搜索简单快捷。
但是随着索引中的文档变得庞大,添加新文档变得越来越慢。
- 当索引的大小很小时,添加/索引 100 万个文档大约需要 250 秒。
- 但是当同一个索引的大小达到大约 50 GB 时,添加 100 万个文档大约需要 1000 秒。
- 当同一索引的大小达到 100 GB 时,添加 100 万个文档需要更长的时间。
- 有时在索引100万个文档的过程中,我可以看到弹性搜索连接错误,错误来自代码行附近的代码。 "//
我想调整 ElasticSearch 集群,使其仍能快速返回搜索结果,但我也希望它能够快速索引/添加文档,即使索引达到 100 GB 或更大。
我愿意
- 在一个集群中使用 3 个节点(我没有找到关于集群中节点数的好的答案,所以按照一些文章的建议,三个似乎是一个不错的数字)
- 我会为每个索引使用 5 个分片 1 个副本。 (我也没有找到合适的号码,这是现在的默认号码)
- 现在,我在一个集群上有 5 - 10 个索引,集群大小为 1000 GB(使用了 300 GB)。如果我不是在 1000 GB 集群上运行 10 个索引,而是运行一个索引一个集群(集群大小为 200 GB),那么在索引和搜索方面的性能会更好吗?
- 我添加到索引中的文档是汇总的投影数据。文档的字段编号从 6 到 12 等。我制作了大部分字段关键字数据类型,如果我制作较少的字段,例如只制作一半的字段关键字,我可以将索引文档的速度提高多少? (在我的例子中,索引大小达到 100 GB,每天我批量索引/添加 100 万个文档到索引中。
那么我可以对上述设置进行哪些更改以提高索引速度和性能,并减少过程中的 Elasticsearch 连接错误等错误?
我正在使用 AWS 托管的 Elasticsearch。
我还能做什么?
谢谢!
【问题讨论】:
标签: elasticsearch