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,当索引中有一些已删除的文档(通过查询删除后)时,清除索引的过程是什么 我问这个问题是因为我在做一个基于solr的项目,我注意到了一个奇怪的行为,我想知道一些关于它的信息 我的系统具有以下功能: 我的文档连续编入索引(每秒1000个文档) 使用此查询每隔几秒钟进行一次清除: <delete><query>timestamp_utc:[ * TO NOW-10MINUTES ]</query></delete> timestamp\u utc:[*

当索引中有一些已删除的文档(通过查询删除后)时,清除索引的过程是什么

我问这个问题是因为我在做一个基于solr的项目,我注意到了一个奇怪的行为,我想知道一些关于它的信息

我的系统具有以下功能:

  • 我的文档连续编入索引(每秒1000个文档)

  • 使用此查询每隔几秒钟进行一次清除:

    <delete><query>timestamp_utc:[ * TO NOW-10MINUTES ]</query></delete>
    
    timestamp\u utc:[*到现在-10分钟]
    
因此,每次在索引中看到60万个文档: 10分钟*60=600秒 速度=1000docs/s所以600*1000=600000

但是我的索引的大小随着时间的推移而增加。我知道,当您执行按删除查询时,文档会受到“删除”标签或索引中类似标签的影响

我已经看到并尝试了属性“expungeDeletes=true”,但是我没有注意到我的索引大小有很大的变化

请提供有关索引清除过程的任何信息

谢谢

编辑


我知道优化可以完成这项工作,但这是一项很长的操作,我希望避免这种情况。

您可以每10分钟创建一个新的集合/核心,切换到它(加上以前的集合/核心),并删除最旧的集合/核心(10分钟后).

请参阅前面的相关问题-与您的qn无关:您真的需要此用例的Solr吗?如果你所需要的只是过去10分钟内的文档ID,那么像Redis这样的技术可能更合适。是的,我需要为你提供solr,因为这是一项实习工作。但是谢谢你的选择,我想谈谈这个。谢谢佩奇的建议。但是优化是非常耗时的。是否有其他方法可以加快清除已删除文档的速度。例如,调整合并因子或提交频率?