예제 #1
0
 //读取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));
     }
 }
예제 #2
0
    //读取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));
        }
    }