- public DataTable GetListReader(int pageI,int pPageListSize,out int pagecountI){
- if(!IndexReader.IndexExists(directory))MakeInit(directory);
- IndexReader reader = IndexReader.Open(directory);
- pagecountI=reader.NumDocs();
- DataTable DT=this.GetSegmentTable();
- pageI=Math.Max(1,pageI);
- int startLoopI=Math.Min(reader.NumDocs(),(pageI-1)*pPageListSize);
- int stopLoopI=Math.Min(reader.NumDocs(),pageI*pPageListSize);
- int trueID = -1;
- for(int iLoop=reader.MaxDoc()-1;iLoop>-1;iLoop--){
- if(!reader.IsDeleted(iLoop)){
- ++trueID;
- //System.Web.HttpContext.Current.Response.Write(trueID);
- if(trueID>stopLoopI )break;
- if(trueID>=startLoopI && trueID<stopLoopI){
- DataRow dr=DT.NewRow();
- dr[1]=Model.TUtility.CInt(reader.Document(iLoop).Get("ID"));
- dr[2]=Model.TUtility.CInt(reader.Document(iLoop).Get("UserID"));
- dr[3]=reader.Document(iLoop).Get("UserName");
- dr[4]=Model.TUtility.CInt(reader.Document(iLoop).Get("CatID"));
- dr[5]=reader.Document(iLoop).Get("Title");
- dr[6]=DateField.StringToDate(reader.Document(iLoop).Get("Time"));
- DT.Rows.Add(dr);
- }
- }
- }
- reader.Close();
- //IndexReader.Unlock(directory);
- return DT;
- }
lucene.net 读取指定页数的记录
最新推荐文章于 2021-02-04 14:48:50 发布
本文介绍了一种基于Lucene的分页查询实现方法。通过使用IndexReader读取索引文件,并利用循环遍历未被标记为删除的文档来填充DataTable,实现了按需加载指定页面范围内的数据记录。
5376

被折叠的 条评论
为什么被折叠?



