我们在Solr文档中了解到,如果未在fieldTypes中启用docValues,则将使用字段缓存。
我们已为我们要处理的所有字段启用了DocValues,并且还为所有数据重新编制了索引。使用docValuesFormat的默认值,以便使用默认值。
我有大约30GB的内存和20GB的JVM堆空间。有了这么多的堆空间,我们仍然遇到了OOM,当我们分析堆转储时,它显示Jar所用堆的66%。
我的主要问题是,为什么在指定fieldType的同时使用docValues =“ true”却使字段缓存使用了如此多的内存?这是预期的吗?
这是我们正在使用的架构版本
我们确实有很多方面字段和方面查询,并且在solr 4上也能很好地工作,但在solr 7上却不能。
<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" />
<fieldType name="strings" class="solr.StrField" sortMissingLast="true" multiValued="true" docValues="true" />
<fieldType name="pint" class="solr.IntPointField" docValues="true" />
<fieldType name="pfloat" class="solr.FloatPointField" docValues="true" />
<fieldType name="plong" class="solr.LongPointField" docValues="true" />
<fieldType name="pdouble" class="solr.DoublePointField" docValues="true" />
<fieldType name="pints" class="solr.IntPointField" docValues="true" multiValued="true" />
<fieldType name="pfloats" class="solr.FloatPointField" docValues="true" multiValued="true" />
<fieldType name="plongs" class="solr.LongPointField" docValues="true" multiValued="true" />
<fieldType name="pdoubles" class="solr.DoublePointField" docValues="true" multiValued="true" />
<fieldType name="pdate" class="solr.DatePointField" docValues="true" />
<fieldType name="pdates" class="solr.DatePointField" docValues="true" multiValued="true" />