Solr - 大索引上的分面导航
我有一个包含 12 亿个文档的索引(Solr 1.4.1)。我想在包含大约 250 个唯一值的字段(int 类型)上启用分面导航。
我使用默认方法(facet.method=fc)得到Java堆空间java.lang.OutOfMemoryError
,而枚举方法非常慢(但有效)。
对于给定数量的文档和唯一值,最佳方法是什么?
更新:
所以如果我理解正确的话:
使用fc方法进行分面的内存使用量是:MaxDoc * 4bytes(字段类型是int,64位JVM),所以就是:1118950216 * 4bytes = 4.1 GB(大约)
内存使用枚举方法进行分面的用法是
这是否正确?
我将再次尝试 FC 方法(并为 solr 提供更多内存)。
谢谢!
I have an index containing 1.2 billion of documents (Solr 1.4.1). I want to enable faceted navigation on a field (int type) containg around 250 unique values.
I am getting Java heap space java.lang.OutOfMemoryError
with the default method (facet.method=fc), while the enum method is very slow (but works).
What is the best approach for a given number of documents and unique values?
Updated:
So if I understand correctly:
Memory usage for faceting using fc method is: MaxDoc * 4bytes (the field type is int, 64bit JVM), so that is: 1118950216 * 4bytes = 4.1GB (aprox.)
Memory usage for faceting using enum method is: NumberOfUniqueValues * SizeOfBitset = 250 * (1118950216 / 8) = 32GB
Is this correct?
I will try again the FC method (and give more ram to solr).
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须调整 JVM内存分配设置和/或向服务器添加更多内存;或者查看对索引进行分片。
You'll have to tune the JVM memory allocation settings and/or add more memory to the server; or alternatively look into sharding the index.