【发布时间】:2013-12-26 12:07:36
【问题描述】:
我有一个包含 5000 万个文档的大型索引。都在同一台机器上运行(没有分片)。 我没有可以让我更新所需文档的 ID,因此对于每次更新,我必须删除整个索引并从头开始索引所有内容,并仅在完成索引时提交。
我的问题是每运行几个索引,我的 Solr 就会因内存不足异常而崩溃,我正在运行 12.5 GB 内存。 据我了解,直到提交所有内容都保存在内存中,所以我将 100M 文档而不是 50M 存储在内存中。我对吗? 但是我在索引时无法提交,因为我一开始就删除了所有文档,然后我会使用部分索引运行,这很糟糕。
是否有任何已知的解决方案?分片可以解决它还是我仍然会遇到同样的问题? 是否有允许我进行软提交但在硬提交之前不会更改索引的标志?
【问题讨论】:
-
使用两个 solr 内核。一种用于生产,一种用于索引。然后您可以使用 intercommits 或 autocommit 进行索引。索引完成后切换内核。
-
你在使用软提交吗?
标签: solr out-of-memory