Paging using Lucene.net

后端 未结 2 1304
一整个雨季
一整个雨季 2021-02-03 11:32

I\'m working on a .Net application which uses Asp.net 3.5 and Lucene.Net I am showing search results given by Lucene.Net in an asp.net datagrid. I need to implement Paging (10 r

2条回答
  •  北恋
    北恋 (楼主)
    2021-02-03 12:19

    Here is a way to build a simple list matching a specific page with Lucene.Net. This is not ASP.Net specific.

    int first = 0, last = 9; // TODO: Set first and last to correct values according to page number and size
    Searcher searcher = new IndexSearcher(YourIndexFolder);
    Query query = BuildQuery(); // TODO: Implement BuildQuery
    Hits hits = searcher.Search(query);
    List results = new List();
    for (int i = first; i <= last && i < hits.Length(); i++)
        results.Add(hits.Doc(i));
    
    // results now contains a page of documents matching the query
    

    Basically the Hits collection is very lightweight. The cost of getting this list is minimal. You just instantiate the needed Documents by calling hits.Doc(i) to build your page.

提交回复
热议问题