是否可以删除Lucene中最旧的部分?

时间:2014-03-13 05:35:03

标签: solr lucene

我想通过删除旧版块来保留特定的细分数量。 在Lucene或Solr有可能吗?

1 个答案:

答案 0 :(得分:3)

取自 Lucene in Action

  

每个索引文件都包含Lucene必不可少的特定信息。如果任何索引文件被Lucene本身以外的任何东西修改或删除,则索引会被破坏,唯一的选择是运行CheckIndex工具[...]或执行原始数据的完整重建索引。

简而言之:不,你自己不能。


但是你可以影响Lucene / Solr来关注你的细分。对你有意思的应该是这些主题。

合并因子

取自Solr的示例collection1

的solrconfig.xml
  

合并因子控制一次合并多少个细分。   对于TieredMergePolicy,mergeFactor是一个便利参数   将立即设置MaxMergeAtOnce和SegmentsPerTier。   对于LogByteSizeMergePolicy,mergeFactor决定了多少个新段   在被合并为一个之前将被允许。   两个合并策略的默认值均为10.

进一步阅读

合并政策

也取自Solr的示例collection1

的solrconfig.xml
  

Lucene中的合并政策控制着如何合并细分。   自Solr / Lucene 3.3起的默认值是TieredMergePolicy。   自Lucene 2.3以来的默认值是LogByteSizeMergePolicy,   甚至旧版本的Lucene都使用了LogDocMergePolicy。

进一步阅读

合并计划程序

也取自Solr的示例collection1

的solrconfig.xml
  

Lucene中的Merge Scheduler控制着合并的方式   执行。 ConcurrentMergeScheduler(Lucene 2.3默认)   可以使用单独的线程在后台执行合并。   SerialMergeScheduler(Lucene 2.2默认值)不会。