当前位置:编程学习 > C#/ASP.NET >>

Lucene.net搜索速度为什么老提不上来?求助!

最近用Lucene.net的最新版本,具体是这样的:1000W数据,64G大小,分盘储存,然后合并搜索,standar分词,三个域,其中内容域为网页爬虫采集的HTML(去掉了标签)所以索引文件略大。

现在搜索标题保持在1S以内,但是初次搜索速度略慢。重要的是内容更慢,第一次搜索会超过十秒以上,而后都是超过3秒以上,很蛋疼啊。

求各位大大的优化建议..
搜索部分代码如下:
public void Search2(string queryStr, string type)
       {
           pagesize = 168;
           currentpage =1;
           Analyzer analyzer=new StandarAnalyzer(Lucene.Net.Util.Version.LUCENE_CURRENT);
           Searcher instantce = new ParallelMultiSearcher(SearcherClass.MuiltiSearcher());//多个索引文件夹
           QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_CURRENT, type, analyzer);
           Query query = parser.Parse(queryStr);
           TopDocs a = instantce.Search(query, currentpage * pagesize);
           ScoreDoc[] hits = a.ScoreDocs;
           int total = a.TotalHits;
           dt.Columns.Add("id");
           dt.Columns.Add("title");
           dt.Columns.Add("content");
           dt.Columns.Add("score");
           int count = 0;
           if (hits.Length > 0)
           {
               if (total - (currentpage - 1) * pagesize < pagesize) pagesize = total - (currentpage - 1) * pagesize;
               for (int i = (currentpage - 1) * pagesize; i < currentpage * pagesize; i++)
               {
                   Document doc = instantce.Doc(hits[i].Doc);
                   DataRow dr = dt.NewRow();
                   dr[0] = doc.Get("id");
                   dr[1] = getSubString(RemoveAllHtml(doc.Get("title")));
                   dr[2] = getSubString(RemoveAllHtml(doc.Get("content")));
                   dr[3] = hits[i].Score.ToString();
                   dt.Rows.Add(dr);
                   count++;
               }
           }
       }
lucene
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,