国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

應用lucene.net進行搜索測試

2019-11-18 17:02:21
字體:
來源:轉載
供稿:網友

經過上篇我們已經對59部小說文本建立了索引,詳情可見http://www.survivalescaperooms.com/abob/archive/2006/08/26/487140.html
 1: 搜索關鍵字 using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Analysis.Cn;

namespace SearchTest
{
    class SearchTest
    {
        PRivate IndexSearcher searcher = null;
        private Analyzer analyser = null;

        public SearchTest()
        {
            analyser = new ChineseAnalyzer();
            searcher = new IndexSearcher(IndexReader.Open("c://index"));
        }

        public Hits search(String queryString, string field)
        {
            if (searcher != null)
            {
                try
                {
                    QueryParser parser = new QueryParser(field,analyser);
                    parser.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
                    Query query = parser.Parse(queryString);
                    return searcher.Search(query);
                }
                catch { }
            }
            return null;
        }

        static void Main(string[] args)
        {
            SearchTest searcher = new SearchTest();
            DateTime start = DateTime.Now;
            Hits h = searcher.search("中國", "content");
            DateTime end = DateTime.Now;
            long time = end.Ticks - start.Ticks;
            Console.WriteLine("總共耗時:{0}毫秒",Convert.ToString(time));
            Console.WriteLine("總共找到{0}個文件",h.Length());
        }
    }
}

由于搜索是一種注重效率的行為,因此將其構建成一個輕量級的對象能節省不少內存和時間上的開銷.在上面的代碼中,內置了一個IndexSearcher對象,并調用其search方法來檢索.
在代碼最后的main函數中,輸入了關鍵字"中國",搜索的結果是

 總共耗時:1406250毫秒
總共找到22個文件
請按任意鍵繼續. . .

2:下面為了性能上的提高,我們來用多線程進行搜索
using System;
using System.Collections.Generic;
using System.Text;
using Lucene.Net.Analysis.Cn;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using System.Threading;


namespace MuiltiSearch
{
    class MultiSearch
    {

        static void Main(string[] args)
        {
            for (int i = 0; i < 50; i++)
            {
                SearchThread s = new SearchThread();
                Thread thread=new Thread(s.run);
                thread.Start();
            }
        }

        }

   public  class SearchThread
   {
        public void run()
        {
            Thread.Sleep(10);
            IndexSearcher searcher = new IndexSearcher(IndexReader.Open("c://index"));
            QueryParser parser = new QueryParser("content", new ChineseAnalyzer());
            parser.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
            Query query = parser.Parse("中國");
            DateTime start = DateTime.Now;

            Hits h = searcher.Search(query);

            DateTime end = DateTime.Now;
            long time = start.Ticks - end.Ticks;

            Console.WriteLine("用時{0}毫秒", time);
        }
    }
}

http://www.survivalescaperooms.com/abob/archive/2006/08/27/487558.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郁南县| 木里| 类乌齐县| 五河县| 阜城县| 曲阜市| 通道| 喜德县| 彰化县| 长丰县| 兴化市| 枣阳市| 迁西县| 西畴县| 天门市| 铜梁县| 吉林市| 出国| 枝江市| 拜城县| 梨树县| 兴安县| 阜新| 泰兴市| 东阳市| 常熟市| 汶上县| 莲花县| 铜鼓县| 鹤庆县| 云梦县| 扬州市| 阿克陶县| 麻江县| 石首市| 富蕴县| 离岛区| 马边| 曲松县| 准格尔旗| 原阳县|