2013-08-20 134 views
2

在索引中刪除一些已刪除的文檔(按查詢刪除之後)時,清除索引的過程是什麼?什麼是Solr/Lucene進程清除索引中的已刪除文檔?

我在問這個問題,因爲我正在研究一個基於solr的項目,並且我注意到了一個奇怪的行爲,我希望得到一些關於它的信息。

我的系統有那些特點:

<delete><query>timestamp_utc:[ * TO NOW-10MINUTES ]</query></delete> 

  • 我的文檔(1000docs每秒)

  • 吹掃完成每對夫婦的第二個與此查詢連續索引

所以我每次在我的索引中看到600000個文檔: 10分鐘* 60 = 600秒 和速度= 1000docs/s所以600 * 1000 = 600000

但我的指數的大小隨着時間增加。而且我知道,當您通過查詢進行刪除時,文檔受到「刪除」標籤或類似索引中的內容的影響。

我見過並嘗試過屬性「expungeDeletes = true」,但我沒有注意到我的索引大小發生了相當大的變化。

任何有關索引清除過程的信息將不勝感激。

謝謝。

編輯

我知道的優化可以做這個工作,但它是一個漫長的操作,我想避免這種情況。

+0

查看上一個相關的問題 - http://stackoverflow.com/questions/3053425/how-do-i-remove-logically-deleted-documents-from-a-solr-index –

+0

與你的qn無關:你真的這個用例需要Solr嗎?如果您只需要在過去10分鐘內使用您的文檔ID,那麼像Redis這樣的技術可能更適合。 – arun

+0

是的,我需要你解決,因爲這是一個實習工作。但是,感謝您選擇這個方案,我會談論這個問題。 – Corentin

回答

0

您可以每隔10分鐘創建一個新的集合/核心,切換到該集合(加上前一個)並刪除最早的集合/核心(晚於10分鐘)。

相關問題