我有一个在ASP.NET(VB.NET)中使用Lucene.net的程序,当你搜索一个术语时,结果存储在Lucene.net数据结构中“命中”。
我希望将匹配读出到数据结构中并使用它们,之后我将它们显示在DataGrid
中。
通过搜索包含大量结果的术语,通常(但并非总是)通过以下代码存在错误:
For i = 0 To results - 1 Step 1
Try
Dim tmpobj As New object_hit(( _
hits.Doc(i).Get("title") + _
hits.Doc(i).Get("doc_typ")), _
hits.Doc(i).Get("pfad"), _
hits.Doc(i).Get("last_change"), _
hits.Doc(i).Get("doc_typ"), _
CStr(hits.Score(i)))
list_of_results.Add(tmpobj) 'works'
Catch
meldung.Text = "Stackoverflow- zuviele Ergebnisse "
myexception = True
End Try
我查了一下服务器;它是一个dwh服务器,执行程序没有问题。
起初我使用的是ReDim Array
,但现在我使用了List(Of T)
。我听说应该解决问题,但事实并非如此 - 现在我很困惑,不知道该做什么 -
有人可以帮帮我吗?
答案 0 :(得分:0)
更改Catch
块,以便您实际可以看到此处发生的事情:
Catch ex as Exception
meldung.Text = ex.Message ' or ex.ToString() to see full details '
throw
End Try
你可能在这里没有得到StackOverflowException
。
答案 1 :(得分:0)
我的浏览器崩溃了,所以我必须以访客身份写作:<遗憾。
我试过了:
抛出了类型'System.OutOfMemoryException'的异常。
现在我有一个正确的for循环,其中只有一行代码
list_of_results.Add(New object_hit((hits.Doc(i).Get("title") + hits.Doc(i).Get("doc_typ")), hits.Doc(i).Get("pfad"), hits.Doc(i).Get("last_change"), hits.Doc(i).Get("doc_typ"), CStr(hits.Score(i))))
发生了什么事? (服务器是一个dwh服务器,它应该成功...)
感谢