磁盘上Solr核心的大小会无限增长吗?

时间:2014-06-03 18:52:56

标签: java apache solr lucene

优化对索引进行解析并减小磁盘上索引的大小。它通过从已删除文档中回收空间来实现此目的。

But this is now deprecated因为它非常低效,很少被证明是合理的。

是否有其他方法可以从已删除的文件中回收空间?文档表明这是使用默认设置(TieredMergePolicy)自动实现的。但是我没有在基本安装中看到这种行为(最大文档数量增加并且没有减少,而numDocs减少了),这是否需要配置?或者是否有另一种更有效的回收此磁盘空间的方法,现在不推荐使用优化?

编辑:使用solr 4.6.1和solrj来管理文档。该架构与4.6.1 download提供的默认架构相同,并带有一些额外的基本字符串字段。

1 个答案:

答案 0 :(得分:2)

调用优化不一定会清除索引并缩小窗口大小:

<强>&GT; &GT;当我删除文档时,为什么我的索引目录不会(立即)变小?合并?优化吗

  

由于“倒排索引”数据结构,删除文件   仅为了搜索而将它们注释为已删除。空间   这些文件使用时将在它们所在的部分进行回收   in合并。

     

合并细分时(因为合并政策为。)   文档是由于强制合并或显式添加或显式添加的   优化命令)然后Solr尝试删除旧的段文件,但是   在某些文件系统上尤其是在Microsoft Windows中)它是不可能的   在文件打开以供阅读时删除文件(通常是这样   是的,因为Solr仍在处理针对旧段的请求   直到新的Searcher准备好并且它的缓存变暖了)。当这个   发生时,较旧的段文件留在磁盘上,而Solr将保留   在下次合并发生时重新尝试删除它们。

solr FAQ

因此,在Windows下,我建议您对索引进行一些更改,以查看是否发生了删除。

所以请:

  • 执行删除
  • 提交
  • 执行put
  • 提交
  • 查看索引大小!:)

总而言之,据我测试过,Lucene引擎只会在需要PUT / POST文档时删除“已删除的文档”!