我有一个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)我不知道这是由于内存问题、22 with索引还是其他原因,但是深入挖掘这个跟踪与分类法编写器缓存系统有关。我已经验证过,在相同的记录中,这种情况并不总是发生,但似乎是某种类型的内存溢出问题。不幸的是,我不知道该从这里做什么,或者我甚至在正确的轨道上理解实际的问题。
发布于 2017-12-06 23:48:42
经过进一步的研究,我发现UTF8TaxonomyWriterCache不是一个很好的大数据缓存机制。在切换到使用LruTaxonomyWriterCache之后,一切又恢复了正常。
https://stackoverflow.com/questions/47684818
复制相似问题