Lucene Taxonomy Writer溢出?

时间:2017-12-06 22:49:06

标签: solr lucene bigdata

我有一个Lucene索引,其中有超过1.2亿条记录,并且它一直在顺利和快速地工作到目前为止。但是,今天我开始收到:

java.lang.ArrayIndexOutOfBoundsException: -65536
lemur   at org.apache.lucene.util.ByteBlockPool.setBytesRef(ByteBlockPool.java:308)
lemur   at org.apache.lucene.util.BytesRefHash.equals(BytesRefHash.java:183)
lemur   at org.apache.lucene.util.BytesRefHash.findHash(BytesRefHash.java:330)
lemur   at org.apache.lucene.util.BytesRefHash.find(BytesRefHash.java:319)
lemur   at org.apache.lucene.facet.taxonomy.writercache.UTF8TaxonomyWriterCache.get(UTF8TaxonomyWriterCache.java:65)
lemur   at org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter.addCategory(DirectoryTaxonomyWriter.java:411)
lemur   at org.apache.lucene.facet.FacetsConfig.processFacetFields(FacetsConfig.java:322)
lemur   at org.apache.lucene.facet.FacetsConfig.build(FacetsConfig.java:285)

我不知道这是由于内存问题,22gig索引还是别的什么,但是通过这个跟踪挖掘它与分类编写器缓存系统有关。我已经验证了这个记录不会一直发生,但似乎是某种内存溢出问题。不幸的是,我不知道该怎么做,或者我甚至在理解实际问题的正确轨道上。

1 个答案:

答案 0 :(得分:0)

经过一些额外的挖掘后,我能够发现UTF8TaxonomyWriterCache对大数据来说不是一个好的缓存机制。切换到使用LruTaxonomyWriterCache后,一切都恢复正常。