我们有一个具有约250 Solr的核心TrieIntField
S(声明为dynamicField
)。 还有我们的Solr指数和许多文件大约14M的文档在许多这些领域的一些价值。 我们有必要进行排序在所有这些领域的250在一段时间。
我们所面临的问题是,底层的Lucene fieldCache
得到非常迅速填补。 我们有一个4 GB框和索引大小为18 GB。 在40或这些动态字段的45排序后,内存消耗为90%左右,我们开始越来越内存溢出错误。
现在,我们已经运行每分钟重启动Tomcat的cron作业,如果消耗的总内存的80%以上。
从我已阅读,我的理解是限制不同价值观对排序Solr的场数将打倒fieldCache
空间。 在这些可排序字段中的值可以从0到33000和相当广泛分布的任意整数。 我们必须记住几个缩放的解决方案,但什么是处理这一整个问题的最佳方式是什么?
更新:我们认为,而不是排序,如果我们提高它不会去fieldCache。 因此,而不是像发出一个查询
select?q=name:alba&sort=relevance_11 desc
我们尝试了
select?q={!boost relevance_11}name:alba
但不幸的是也促进填充字段缓存:(