经过上篇我们已经对59부 小说文本建立了索引,详情可见http://www.cnblogs.com/abob/archive/2006/08/26/487140.html
1: 시스템을 사용하는 搜索关键字;
System.Collections.Generic을 사용합니다.
System.Text 사용;
System.IO 사용;
Lucene.Net.Analytic 사용;
Lucene.Net.Documents를 사용합니다.
Lucene.Net.Index를 사용하여;
Lucene.Net.QueryParsers 사용;
Lucene.Net.Search 사용;
Lucene.Net.Analytic.Cn을 사용합니다.
네임스페이스 SearchTest
{
클래스 검색 테스트
{
개인 IndexSearcher 검색자 = null;
개인 분석기 분석기 = null;
공개 검색테스트()
{
분석기 = 새로운 ChineseAnalyzer();
searcher = new IndexSearcher(IndexReader.Open("c:\index"));
}
공개 조회수 검색(문자열 queryString, 문자열 필드)
{
if (검색자 != null)
{
노력하다
{
QueryParser 파서 = new QueryParser(필드, 분석기);
파서.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
쿼리 쿼리 = 파서.Parse(queryString);
return searcher.Search(query);
}
잡다 { }
}
null을 반환;
}
정적 무효 Main(string[] args)
{
SearchTest 검색자 = new SearchTest();
DateTime 시작 = DateTime.Now;
조회수 h = searcher.search("中國", "content");
DateTime end = DateTime.Now;
오랜 시간 = end.Ticks - start.Ticks;
Console.WriteLine("总共耗时:{0}毫秒",Convert.ToString(time));
Console.WriteLine("总共找到{0}个文件",h.Length());
}
}
}
置了一个IndexSearcher对象,并调사용其search방법来检索.
代码最后的main函数中,输入了关键字"中國",搜索的结果是
总共耗时:1406250毫秒总共找到22个文件请按任意键继续. . .
2: 하단면의 성능이 향상되어 더 많은 기능을 사용할 수 있습니다.
시스템 사용;
System.Collections.Generic을 사용합니다.
System.Text 사용;
Lucene.Net.Analytic.Cn을 사용합니다.
Lucene.Net.Index를 사용하여;
Lucene.Net.QueryParsers 사용;
Lucene.Net.Search 사용;
System.Threading 사용;
네임스페이스 MultiSearch
{
클래스 다중 검색
{
정적 무효 Main(string[] args)
{
for (int i = 0; i < 50; i++)
{
SearchThread s = 새로운 SearchThread();
스레드 스레드=새 스레드(s.run);
스레드.시작();
}
}
}
공개 클래스 SearchThread
{
공개 무효 실행()
{
Thread.Sleep(10);
IndexSearcher 검색자 = new IndexSearcher(IndexReader.Open("c:\index"));
QueryParser 파서 = new QueryParser("content", new ChineseAnalyzer());
파서.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
쿼리 쿼리 = 파서.Parse("中國");
DateTime 시작 = DateTime.Now;
조회수 h = searcher.Search(query);
DateTime end = DateTime.Now;
오랜 시간 = start.Ticks - end.Ticks;
Console.WriteLine("사용 시간{0}시간", 시간);
}
}
}