簡體   English   中英

如何從Solr索引中刪除邏輯刪除的文檔?

[英]How do I remove logically deleted documents from a Solr index?

我正在實施Solr的自由文本搜索項目,其中每天需要大量添加和刪除可用於搜索的記錄。

由於規模我需要確保索引的大小是合適的。

在我的Solr測試安裝中,我索引了一組10個文檔。 然后我在其中一個文檔中進行了更改,並希望在索引中替換具有相同ID的文檔。 這可以正常工作,並在搜索時按預期運行。

我正在使用此代碼更新文檔:

getSolrServer().deleteById(document.getIndexId());
getSolrServer().add(document.getSolrInputDocument());
getSolrServer().commit();

我注意到的是,當我查看Solr服務器的統計頁面時,數據並不是我所期望的。

在初始索引之后,numDocs和maxDocs都如預期的那樣等於10。 但是,當我更新文檔時,numDocs仍然等於10(預期)但maxDocs等於11(意外)。

閱讀文檔時,我看到了

maxDoc可能更大,因為maxDoc計數包括尚未從索引中刪除的邏輯刪除文檔。

所以問題是,如何從索引中刪除邏輯刪除的文檔?

如果這些文檔仍然存在於索引中,那么當運行大量文檔時,我是否會面臨性能損失的風險?

謝謝 :)

您必須優化索引

請注意,優化是廣泛的,您可能不應該每天做更多。

以下是有關優化的更多信息:

http://www.lucidimagination.com/search/document/CDRG_ch06_6.3.1.3

http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM