我正在將我的Lucene索引離線移動到由JMS隊列的通信者完成的過程中。我擁有一切應有的工作。它正確地創建索引,並且我能夠將索引文件rsync同步到新盒子。問題是讓Lucene使用新索引的最佳方法是什麼?其他人如何重新初始化其IndexWriters以使用新的索引文件? 謝謝!將Lucene索引移動到另一臺服務器
1
A
回答
1
對於追隨我的其他人,這是我所做的。
目標是讓我的JMS消費者生成我的lucene索引,然後讓我的每個服務器在完成後提取新索引。 下面是我所採取的步驟:
- 創建一個crontab來產生我的新指數每晚
- 創建一個crontab來調用腳本updateLuceneIndex.sh在每臺服務器上更新新的索引
!/ bin/sh
TIME = date +%s
;
rsync -av tomcat @ consumer1。 * .COM:/家庭/ tomcat的/ Lucene的/家庭/ tomcat的/ Lucene的
回聲$ TIME
MV -f /家庭/ tomcat的/ Lucene的/ Lucene的/家庭/ tomcat的/ Lucene的/ $ TIME
由於以上你看到的它使用時間戳的目錄名稱,以便在新的指數將在名爲像
/home/tomcat/lucene/1300291879
- 文件夾中顯示的服務器代碼會搶在/ home目錄的列表/ tomcat的/ Lucene的目錄。
- 它對其進行排序根據新目錄的名稱,並抓住最後一個(最新)
- 比刪除所有舊索引除了最後2(萬一有損壞)
- 我創建的服務器指向新目錄的新IndexReader
我不確定這是否是線程安全的。我想如果有人在我切換時嘗試搜索,他們會得到一個錯誤,但我目前沒有那麼多搜索來做出這種可能的情況。但是,隨着我們的流量增長,它肯定會成爲事情可能破裂的地方。如果有人知道更好的方法,請告知。
下面是代碼:
public void initialize(File newIndexDirectory) throws CorruptIndexException, IOException {
try {
File path = (newIndexDirectory == null) ? new File(indexDirectory) : newIndexDirectory;
Directory index = new SimpleFSDirectory(path);
searcher = new IndexSearcher(index);
logger.debug("Successfully initialized index at: " + path.getAbsolutePath());
currentIndexFile = path;
} catch (Exception e) {
logger.warn("Lucene index is corrupt");
}
}
+0
使用你的方法一年後,它如何工作? – Hirsty 2013-04-12 09:14:10
相關問題
- 1. 移動RavenDb到另一臺服務器
- 2. Teradata:將數據從一臺服務器移動到另一臺
- 3. 將jira從一臺服務器移動到另一臺
- 4. 將Subversion從一臺服務器移動到另一臺
- 5. 將PHP站點從一臺服務器移動到另一臺
- 6. 將代碼從一臺TFS服務器移動到另一臺服務器
- 7. 將域從一臺服務器移動到另一臺服務器?
- 8. 如何將文件從一臺服務器移動到另一臺服務器
- 9. 將表從服務器轉移到另一臺服務器
- 10. 如何將SSRS移動報告(Mobile Report Publisher)從一臺服務器移動到另一臺服務器?
- 11. 從一臺服務器移動MySQL數據庫到另一臺服務器
- 12. 移動Magento的網站從一臺服務器到另一臺服務器
- 13. 將php變量從一臺服務器轉移到另一臺服務器
- 14. 將WordPress站點從一臺服務器遷移到另一臺服務器
- 15. 將SSL證書從一臺服務器遷移到另一臺服務器
- 16. 將大量文件從一臺服務器轉移到另一臺服務器
- 17. 將數據從一臺服務器遷移到另一臺服務器
- 18. 將數據庫從一臺服務器轉移到另一臺服務器
- 19. 將一臺Chef服務器遷移到Azure中的另一臺服務器
- 20. 使用WHM將帳戶從一臺服務器移到另一臺服務器
- 21. 將silvertripe網站從一臺服務器遷移到另一臺服務器
- 22. 將數據庫移動到另一臺服務器
- 23. 將Perforce文件夾移動到另一臺服務器
- 24. 將django網站移動到另一臺服務器
- 25. 將文件從Tomcat Linux移動到另一臺Linux服務器
- 26. 將存儲庫移動到另一臺服務器
- 27. 將文件移動到另一臺服務器
- 28. Lucene索引服務
- 29. SQL服務器從一臺服務器2008 R2數據移動到另一個
- 30. 將現有網站從一臺服務器移至另一臺服務器?
我假設你有一個在新的框索引的所有文件,對不對? – remo 2011-03-16 12:52:04
爲什麼你不能正常打開索引? (還有什麼其他選擇?) – Xodarap 2011-03-16 14:01:48