2010-05-14 51 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