Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET+;Lucene网站_C#_Asp.net_Lucene - Fatal编程技术网

C# ASP.NET+;Lucene网站

C# ASP.NET+;Lucene网站,c#,asp.net,lucene,C#,Asp.net,Lucene,这里是ASP.NET新手 我编写了一个ASP.NET网站,并在win'08(远程托管)上运行。应用程序查询11个非常大的Lucene索引(每个~100GB)。我在页面_load()上打开IndexSearcher并保持打开状态,然后根据用户输入的关键字通过ref将它们传递到查询方法中 我可以在RDC和运行的网站在VS-2008良好。我可以从我的桌面通过web部署和访问它。出于一些奇怪的原因,我的一些队友在运行同一个网站时遇到问题-他们可以很好地登录,因此访问不是问题-但是当他们运行一些搜索时,应

这里是ASP.NET新手

我编写了一个ASP.NET网站,并在win'08(远程托管)上运行。应用程序查询11个非常大的Lucene索引(每个~100GB)。我在页面_load()上打开IndexSearcher并保持打开状态,然后根据用户输入的关键字通过ref将它们传递到查询方法中

我可以在RDC和运行的网站在VS-2008良好。我可以从我的桌面通过web部署和访问它。出于一些奇怪的原因,我的一些队友在运行同一个网站时遇到问题-他们可以很好地登录,因此访问不是问题-但是当他们运行一些搜索时,应用程序只是“挂起”


对我应该去哪里找有什么建议吗?如果多个搜索者同时查询,这会是一个问题吗?有什么想法吗?

听起来像是锁定问题

您在web应用程序中保留任何资源的时间不得超过需要的时间(请求)

所以我认为你不应该持有Lucene指数

还要检查站点运行时所使用的帐户的文件系统权限


此外,您应该检查事件日志,您可能会遇到一些警告或静默错误。

现在我的搜索方法都在一个静态类中,并调用类似于publicstaticdosearch(ref indexsearch,string query)的方法。您建议我在DoSearch()中打开indexsearch吗然后关闭它?首先你需要隔离问题。确保是Lucene引起的。但是肯定的是,您需要关闭索引,因为
多个索引编写器或读取器可以尝试同时编辑lucene索引文件(关闭索引编写器/读取器很重要,这样它会释放文件锁)。
我确实检查了这一点,并设置了计时器进行测量,看起来查询不会花费很多时间(几毫秒到1秒)…但是绑定到gridview似乎花费了过多的时间。在ASP.NET上使用Lucene有什么最佳实践吗?以下是我从搜索SO和Lucene站点中收集到的信息:1.在PageLoad()上打开IndexSearchers,并在用户会话期间保留它们。2.打开搜索器IndexReader=true(我的编写者在一个单独的守护进程计划任务进程中)3.使用HitsCollector而不是Hits类。4.将索引移动到多个物理磁盘上(我有2个)你同意/不同意上面的说法吗?有什么要补充的吗?还有我可以参考的最佳实践项目吗?谢谢你的帮助!你说应用程序“手”。这通常被理解为应用程序没有响应。但从您上次的评论来看,应用程序似乎没有挂起,但在将数据绑定到网格时执行速度较慢。因此,您需要确保您没有绑定数百万条记录或数据被分页。通常,您应该在网页上只显示10-100个条目。如果有更多-你应该分页。