Solr的OutOfMemoryError - >巨大的1Gb FieldCacheImpl $ StringIndexCache

时间:2013-04-03 16:18:32

标签: java solr out-of-memory

在Solr 1.4上,你知道什么可能导致这个类的OutOfMemoryError吗?

org.apache.lucene.search.FieldCacheImpl$StringIndexCache#1

它需要一个gb的ram,而底层的WeakHashMap只有700个键。


缓存配置:

<filterCache
  class="solr.FastLRUCache"
  size="1024"
  initialSize="0"
  autowarmCount="0"/>

<queryResultCache
  class="solr.FastLRUCache"
  size="1024"
  initialSize="0"
  autowarmCount="0"/>


<documentCache
  class="solr.FastLRUCache"
  size="1024"
  initialSize="0"
  autowarmCount="0"/>

通常情况下,我的物体很大但不是很多,每个物体不超过1mb!

Xmx是2GB。

索引了300万份文件。

OOM在查询时出现。

1 个答案:

答案 0 :(得分:1)

如果检查/admin/stats.jsp是否为Solr核心,可以在FieldCache下看到:

Provides introspection of the Lucene FieldCache, this is **NOT** a cache that is managed by Solr.

除了更改查询之外,您无法在Solr中对此缓存执行任何操作。您很可能在不使用facet.method=enum的情况下对动态字段进行排序或进行分面处理。见Solr/Lucene fieldCache OutOfMemory error sorting on dynamic field