//读取doc文档 public static IEnumerable <T> ReadModels <T>(Searcher indexSearcher, TopDocs topDocs, string returnFields = null) where T : class, new() { if (topDocs.TotalHits == 0) { yield break; } foreach (var scoreDoc in topDocs.ScoreDocs) { Document doc; if (returnFields == null) { doc = indexSearcher.Doc(scoreDoc.Doc); } else { string[] fieldArr = returnFields.Split(','); MapFieldSelector field = new MapFieldSelector(fieldArr);//指定返回列 doc = indexSearcher.Doc(scoreDoc.Doc, field); } yield return(LuceneTool.CreateModel <T>(doc)); } }
//读取doc文档 public static IEnumerable <T> ReadModels <T>(Searcher indexSearcher, TopDocs topDocs, int skip, string returnFields = null) where T : class, new() { if (skip >= topDocs.TotalHits) { yield break; } for (int i = skip; i < topDocs.ScoreDocs.Length; i++) { Document doc; if (returnFields == null) { doc = indexSearcher.Doc(topDocs.ScoreDocs[i].Doc); } else { string[] fieldArr = returnFields.Split(','); MapFieldSelector field = new MapFieldSelector(fieldArr);//指定返回列 doc = indexSearcher.Doc(topDocs.ScoreDocs[i].Doc, field); } yield return(LuceneTool.CreateModel <T>(doc)); } }