59部小说文本建立了索引,详情可见http://www.cnblogs.com/abob/archive/2006/08/26/487140.html
1: 搜索关键字 menggunakan Sistem;
menggunakan System.Collections.Generik;
menggunakan Sistem.Teks;
menggunakan Sistem.IO;
menggunakan Lucene.Net.Analysis;
menggunakan Lucene.Net.Documents;
menggunakan Lucene.Net.Index;
menggunakan Lucene.Net.QueryParsers;
menggunakan Lucene.Net.Search;
menggunakan Lucene.Net.Analysis.Cn;
ruang nama SearchTest
{
kelas PencarianTes
{
pencari IndexSearcher pribadi = null;
penganalisis penganalisis pribadi = null;
Tes Penelusuran publik()
{
penganalisis = ChineseAnalyzer baru();
pencari = new IndexSearcher(IndexReader.Open("c:\index"));
}
pencarian Hit publik (String queryString, bidang string)
{
jika (pencari!= null)
{
mencoba
{
Parser QueryParser = new QueryParser(field,analyser);
parser.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
Kueri kueri = parser.Parse(queryString);
return searcher.Search(kueri);
}
menangkap { }
}
kembalikan nol;
}
static void Utama(string[] args)
{
Penelusur SearchTest = SearchTest baru();
TanggalWaktu mulai = TanggalWaktu.Sekarang;
Tekan h = searcher.search("中国", "konten");
TanggalWaktu berakhir = TanggalWaktu.Sekarang;
lama = akhir.Kutu - mulai.Kutu;
Console.WriteLine("总共耗时:{0}毫秒",Convert.ToString(waktu));
Console.WriteLine("总共找到{0}个文件",h.Length());
}
}
}
由于搜索是一种注重效率的行为,因此将其构建成一个轻量photo上的开销.在上面的代码中,内置了一个IndexSearcher对象,并调用其search方法来检索.
在代码最后的main函数中,输入了关键字"中国",搜索的结果是
总共耗时:1406250毫秒总共找到22个文件请按任意键继续. . .
2:下面为了性能上的提高,我们来用多线程进行搜索
menggunakan Sistem;
menggunakan System.Collections.Generik;
menggunakan Sistem.Teks;
menggunakan Lucene.Net.Analysis.Cn;
menggunakan Lucene.Net.Index;
menggunakan Lucene.Net.QueryParsers;
menggunakan Lucene.Net.Search;
menggunakan Sistem.Threading;
namespace MuiltiSearch
{
kelas MultiSearch
{
static void Utama(string[] args)
{
untuk (int saya = 0; saya < 50; saya++)
{
Benang Penelusuran s = Benang Penelusuran baru();
Thread thread=Benang baru(s.run);
thread.Mulai();
}
}
}
SearchThread kelas publik
{
menjalankan kekosongan publik()
{
Thread.Tidur(10);
Pencari IndexSearcher = new IndexSearcher(IndexReader.Open("c:\index"));
Parser QueryParser = new QueryParser("konten", new ChineseAnalyzer());
parser.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
Kueri kueri = parser.Parse("中国");
TanggalWaktu mulai = TanggalWaktu.Sekarang;
Hit h = pencari.Pencarian(kueri);
TanggalWaktu berakhir = TanggalWaktu.Sekarang;
lama = mulai.Kutu - akhir.Kutu;
Console.WriteLine("用时{0}毫秒", waktu);
}
}
}