2010-05-14 32 views
0

情況:我有一個使用Lucene搜索文檔的ASP .NET應用程序。我想運行初始索引(索引在初始運行後將是遞增的,因此將來不需要重新索引整個目錄)。目前,我有大約5GB的文檔(45000文件)。運行長過程:使用Lucene索引5GB文檔

問題:我的申請在完成過程之前超時。我改變了這樣的TimeOut:

HttpContext.Current.Server.ScriptTimeout = 200000;

但它仍然沒有完成該過程。

我該如何運行索引?

+0

它給出了什麼樣的超時錯誤? – quillbreaker 2010-05-14 13:15:06

+0

我問,因爲通常當我試圖阻止超時時,經常有很多方法超時,你需要阻止他們。然而,本有一個有效的觀點。如果你不必在網頁上做,不要。對於Ben的建議, – quillbreaker 2010-05-14 13:19:05

回答

3

你不應該從ASP.NET運行這些。創建一個爲您完成工作的服務,並通過MSMQ,數據庫中的「work_queue」表或任何您的方案中有意義的表來啓動它。

Web請求旨在快速執行工作並立即返回,而不是執行批處理。

+2

+1。還建議尋找Solr,它可以爲您解決幾個問題。您可以使用SolrNet從ASP.NET查詢Solr。 – Mikos 2010-05-14 12:21:37

+0

@Mikos - 在其中一個項目中,我無法使用Solr,因爲該網站託管在別處。但是,我現在在我的最新項目中使用了Nutch,Solr和SolrNet,並且它很有用。文檔不是最好的,但結果正是我所期待的。 – robasta 2011-05-12 14:00:49