Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 是否可以删除Lucene中最旧的段?_Solr_Lucene - Fatal编程技术网

Solr 是否可以删除Lucene中最旧的段?

Solr 是否可以删除Lucene中最旧的段?,solr,lucene,Solr,Lucene,我想通过删除较旧的段来保留特定数量的段。 在Lucene或Solr中,这是可能的?取自 每个索引文件都包含Lucene所必需的特定类型的信息。如果任何索引文件被Lucene本身以外的任何东西修改或删除,则索引将损坏,唯一的选项是运行CheckIndex工具[…]或对原始数据执行完全的重新索引 简言之:不,你自己不能 但您可以影响Lucene/Solr,以便为您关注细分市场。这些话题应该是你感兴趣的 合并因子 取自Solr示例集合1的solrconfig.xml 合并因子控制一次将合并多少段。

我想通过删除较旧的段来保留特定数量的段。 在Lucene或Solr中,这是可能的?

取自

每个索引文件都包含Lucene所必需的特定类型的信息。如果任何索引文件被Lucene本身以外的任何东西修改或删除,则索引将损坏,唯一的选项是运行CheckIndex工具[…]或对原始数据执行完全的重新索引

简言之:不,你自己不能


但您可以影响Lucene/Solr,以便为您关注细分市场。这些话题应该是你感兴趣的

合并因子 取自Solr示例集合1的solrconfig.xml

合并因子控制一次将合并多少段。 对于TieredMergePolicy,mergeFactor是一个方便的参数 将同时设置MaxMergeAtone和SegmentsPerter。 对于LogByteSizeMergePolicy,mergeFactor决定有多少新的段 将在它们合并为一个之前被允许。 两个合并策略的默认值均为10

进一步阅读

合并策略 也取自Solr示例集合1的solrconfig.xml

Lucene中的合并策略控制如何合并段。 自Solr/Lucene 3.3以来的默认值是TieredMergePolicy。 Lucene 2.3之后的默认策略是LogByteSizeMergePolicy, 甚至更早版本的Lucene也使用LogDocMergePolicy

进一步阅读

合并调度程序 也取自Solr示例集合1的solrconfig.xml

Lucene中的合并调度器控制合并的方式 表演。ConcurrentMergeScheduler(Lucene 2.3默认) 可以在后台使用单独的线程执行合并。 SerialMergeScheduler(Lucene 2.2默认值)没有


你确定你明白你的要求吗?为什么要删除包含有效数据的段?为什么不删除最旧的文档并合并呢?你的目标是什么?是否要删除最旧的文档?你知道在Solr环境下优化意味着什么吗?我认为删除最旧的部分比删除文档和合并/优化索引要轻。我只想限制索引中文档的最大数量。或者可以将多个索引视为单个索引吗?