优化对索引进行解析并减小磁盘上索引的大小。它通过从已删除文档中回收空间来实现此目的。
But this is now deprecated因为它非常低效,很少被证明是合理的。
是否有其他方法可以从已删除的文件中回收空间?文档表明这是使用默认设置(TieredMergePolicy)自动实现的。但是我没有在基本安装中看到这种行为(最大文档数量增加并且没有减少,而numDocs减少了),这是否需要配置?或者是否有另一种更有效的回收此磁盘空间的方法,现在不推荐使用优化?
编辑:使用solr 4.6.1和solrj来管理文档。该架构与4.6.1 download提供的默认架构相同,并带有一些额外的基本字符串字段。
答案 0 :(得分:2)
调用优化不一定会清除索引并缩小窗口大小:
<强>&GT; &GT;当我删除文档时,为什么我的索引目录不会(立即)变小?合并?优化吗
由于“倒排索引”数据结构,删除文件 仅为了搜索而将它们注释为已删除。空间 这些文件使用时将在它们所在的部分进行回收 in合并。
合并细分时(因为合并政策为。) 文档是由于强制合并或显式添加或显式添加的 优化命令)然后Solr尝试删除旧的段文件,但是 在某些文件系统上尤其是在Microsoft Windows中)它是不可能的 在文件打开以供阅读时删除文件(通常是这样 是的,因为Solr仍在处理针对旧段的请求 直到新的Searcher准备好并且它的缓存变暖了)。当这个 发生时,较旧的段文件留在磁盘上,而Solr将保留 在下次合并发生时重新尝试删除它们。
因此,在Windows下,我建议您对索引进行一些更改,以查看是否发生了删除。
所以请:
总而言之,据我测试过,Lucene引擎只会在需要PUT / POST文档时删除“已删除的文档”!