错误信息:[OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.]
System.LocalDataStoreMgr.CreateLocalDataStore() +76
System.Threading.Thread.SetData(LocalDataStoreSlot slot, Object data) +69
Lucene.Net.Util.CloseableThreadLocal.Set(Object object_Renamed) +136
Lucene.Net.Index.TermInfosReader.GetThreadResources() +238
Lucene.Net.Index.TermInfosReader.Get(Term term, Boolean useCache) +152
Lucene.Net.Index.TermInfosReader.Get(Term term) +45
Lucene.Net.Index.SegmentReader.DocFreq(Term t) +83
Lucene.Net.Index.DirectoryReader.DocFreq(Term t) +111
Lucene.Net.Search.IndexSearcher.DocFreq(Term term) +48
Lucene.Net.Search.Similarity.IdfExplain(Term term, Searcher searcher) +161
Lucene.Net.Search.TermWeight..ctor(TermQuery enclosingInstance, Searcher searcher) +151
Lucene.Net.Search.TermQuery.CreateWeight(Searcher searcher) +59
Lucene.Net.Search.Query.Weight(Searcher searcher) +88
Lucene.Net.Search.Searcher.CreateWeight(Query query) +44
Lucene.Net.Search.Searcher.Search(Query query, Filter filter, Int32 n) +51
_3c_ProductList.GetList(DataTable& dtCategory) in d:\SEG\SegProject\Seg\Segbuy\Web\Seg.Segbuy.Web.Main\3c\ProductList.aspx.cs:183
_3c_ProductList.Bind() in d:\SEG\SegProject\Seg\Segbuy\Web\Seg.Segbuy.Web.Main\3c\ProductList.aspx.cs:90
_3c_ProductList.Page_Load(Object sender, EventArgs e) in d:\SEG\SegProject\Seg\Segbuy\Web\Seg.Segbuy.Web.Main\3c\ProductList.aspx.cs:82
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
代码:
#region 构建左侧排序datatable
BooleanQuery boolquery2 = boolquery;
Directory directory2 = FSDirectory.Open(new System.IO.DirectoryInfo(indexpath));
IndexSearcher search2 = new IndexSearcher(directory2,true); //创建 IndexSearcher 实例需要告诉 lucene 索引的位置,就是你 IndexWrite 的文件路径。
TopDocs topDocs2 = search2.Search(boolquery2, null, search2.MaxDoc(),sort);//只存储id和score。
ScoreDoc[] scoreDoc2 = topDocs2.scoreDocs;
if(topDocs2.totalHits == 0)
{
dtCategory = null;
}
DataTable dtList2 = new DataTable();
dtList2.Columns.Add("productid");
dtList2.Columns.Add("categorycode");
dtList2.Clear();
for(int i = 0; i < topDocs2.totalHits; i++)
{
Document doc = search2.Doc(scoreDoc2[i].doc); //Doc(int n) : 放回第 n 个文档。
DataRow dr = dtList2.NewRow();
dr["productid"] = doc.Get("productid");
dr["categorycode"] = doc.Get("categorycode");
dtList2.Rows.Add(dr);
dr.AcceptChanges();
}
search2.Close();//关闭
directory2.Close();
dtCategory = dtList2;
#endregion
System.LocalDataStoreMgr.CreateLocalDataStore() +76
System.Threading.Thread.SetData(LocalDataStoreSlot slot, Object data) +69
Lucene.Net.Util.CloseableThreadLocal.Set(Object object_Renamed) +136
Lucene.Net.Index.TermInfosReader.GetThreadResources() +238
Lucene.Net.Index.TermInfosReader.Get(Term term, Boolean useCache) +152
Lucene.Net.Index.TermInfosReader.Get(Term term) +45
Lucene.Net.Index.SegmentReader.DocFreq(Term t) +83
Lucene.Net.Index.DirectoryReader.DocFreq(Term t) +111
Lucene.Net.Search.IndexSearcher.DocFreq(Term term) +48
Lucene.Net.Search.Similarity.IdfExplain(Term term, Searcher searcher) +161
Lucene.Net.Search.TermWeight..ctor(TermQuery enclosingInstance, Searcher searcher) +151
Lucene.Net.Search.TermQuery.CreateWeight(Searcher searcher) +59
Lucene.Net.Search.Query.Weight(Searcher searcher) +88
Lucene.Net.Search.Searcher.CreateWeight(Query query) +44
Lucene.Net.Search.Searcher.Search(Query query, Filter filter, Int32 n) +51
_3c_ProductList.GetList(DataTable& dtCategory) in d:\SEG\SegProject\Seg\Segbuy\Web\Seg.Segbuy.Web.Main\3c\ProductList.aspx.cs:183
_3c_ProductList.Bind() in d:\SEG\SegProject\Seg\Segbuy\Web\Seg.Segbuy.Web.Main\3c\ProductList.aspx.cs:90
_3c_ProductList.Page_Load(Object sender, EventArgs e) in d:\SEG\SegProject\Seg\Segbuy\Web\Seg.Segbuy.Web.Main\3c\ProductList.aspx.cs:82
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
代码:
#region 构建左侧排序datatable
BooleanQuery boolquery2 = boolquery;
Directory directory2 = FSDirectory.Open(new System.IO.DirectoryInfo(indexpath));
IndexSearcher search2 = new IndexSearcher(directory2,true); //创建 IndexSearcher 实例需要告诉 lucene 索引的位置,就是你 IndexWrite 的文件路径。
TopDocs topDocs2 = search2.Search(boolquery2, null, search2.MaxDoc(),sort);//只存储id和score。
ScoreDoc[] scoreDoc2 = topDocs2.scoreDocs;
if(topDocs2.totalHits == 0)
{
dtCategory = null;
}
DataTable dtList2 = new DataTable();
dtList2.Columns.Add("productid");
dtList2.Columns.Add("categorycode");
dtList2.Clear();
for(int i = 0; i < topDocs2.totalHits; i++)
{
Document doc = search2.Doc(scoreDoc2[i].doc); //Doc(int n) : 放回第 n 个文档。
DataRow dr = dtList2.NewRow();
dr["productid"] = doc.Get("productid");
dr["categorycode"] = doc.Get("categorycode");
dtList2.Rows.Add(dr);
dr.AcceptChanges();
}
search2.Close();//关闭
directory2.Close();
dtCategory = dtList2;
#endregion
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货