2016-03-21 154 views
0

我從django應用程序中刪除了一條記錄,然後用update_index將其記錄下來,並且記錄仍然可以搜索。然後,我使用了rebuild_index,並且在我再次運行搜索時似乎工作正常。但是我不知道我的電腦是否結束,或者是什麼時候,當我到達我的django應用程序時,所有的記錄都消失了。但我驚慌地點擊瀏覽器上的刷新按鈕幾次,他們再次出現。我想是上這是明確的,我從我的Django應用程序中刪除記錄我跑對Django-Haystack的rebuild/update_index有點困惑

./manage.py rebuild_index 

,當我添加一條記錄到我的Django應用程序我做這個

​​ 後

這是正確的語法嗎?我不希望無意中刪除所有記錄,因爲缺乏對上述命令的理解。這些文檔對我來說並不完全清楚。

回答

3

避免使用rebuild_index從搜索索引中刪除已刪除的對象。

當您運行rebuild_index命令時,所有索引將被刪除/清除,使用clear_index,然後使用update_index進行更新。

使用update_index命令更新您的搜索索引。要刪除已刪除的對象,可以將--remove參數傳遞給該命令,以便它有效地刪除過時的對象。

$ python manage.py update_index --remove 

該命令將從索引中刪除已刪除的對象。

閱讀全文@haystack docs/management commands

+0

是'update_index'只索引缺少結果嗎?或者它再次更新一切?因爲第一次運行'rebuild_index'後,我運行了'update_index',它顯示了'Indexing#results'和記錄總數。 – eLRuLL

+0

它用於重新索引舊的更新對象並對新的對象編制索引。它檢查它在索引中的對象是否是最新的,並且還添加了它沒有的對象。 – v1k45