http://www.cnblogs.com/abob/archive/2006/08/26/487140.html
1: 搜索关键字 usando Sistema;
usando System.Collections.Generic;
usando System.Text;
usando System.IO;
usando Lucene.Net.Analysis;
utilizando Lucene.Net.Documents;
usando Lucene.Net.Index;
usando Lucene.Net.QueryParsers;
usando Lucene.Net.Search;
usando Lucene.Net.Analysis.Cn;
espacio de nombres Prueba de búsqueda
{
prueba de búsqueda de clase
{
buscador IndexSearcher privado = nulo;
analizador analizador privado = nulo;
prueba de búsqueda pública()
{
analizador = nuevo ChineseAnalyzer();
buscador = nuevo IndexSearcher(IndexReader.Open("c:\index"));
}
búsqueda pública de visitas (cadena de consulta, campo de cadena)
{
si (buscador! = nulo)
{
intentar
{
Analizador QueryParser = nuevo QueryParser (campo, analizador);
analizador.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
Consulta consulta = parser.Parse(queryString);
devolver buscador.Buscar(consulta);
}
atrapar { }
}
devolver nulo;
}
static void Principal(cadena[] argumentos)
{
Buscador SearchTest = nuevo SearchTest();
Inicio de fecha y hora = Fecha y hora.Ahora;
Visitas h = searcher.search("中国", "content");
Fin de fecha y hora = Fecha y hora.Ahora;
mucho tiempo = fin.Ticks - inicio.Ticks;
Console.WriteLine("总共耗时:{0}毫秒",Convert.ToString(time));
Console.WriteLine("总共找到{0}个文件",h.Length());
}
}
}
由于搜索是一种注重效率的行为,因此将其构建成一个轻量级的对象能节省不少内存和时间上的开销.在上面的代码中,内置了一个IndexSearcher对象,并调用其search方法来检索.
在代码最后的main函数中,输入了关键字"中国",搜索的结果是
总共耗时:1406250毫秒总共找到22个文件请按任意键继续. . .
2:下面为了性能上的提高,我们来用多线程进行搜索
usando Sistema;
usando System.Collections.Generic;
usando System.Text;
usando Lucene.Net.Analysis.Cn;
usando Lucene.Net.Index;
usando Lucene.Net.QueryParsers;
usando Lucene.Net.Search;
usando System.Threading;
espacio de nombres MuiltiSearch
{
clase multibúsqueda
{
static void Principal (cadena [] argumentos)
{
para (int i = 0; i < 50; i++)
{
SearchThread s = nuevo SearchThread();
Hilo hilo = nuevo hilo (s.run);
hilo.Inicio();
}
}
}
clase pública SearchThread
{
ejecución pública vacía()
{
Hilo.Sleep(10);
Buscador IndexSearcher = new IndexSearcher(IndexReader.Open("c:\index"));
Analizador QueryParser = new QueryParser("contenido", nuevo ChineseAnalyzer());
analizador.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
Consulta de consulta = parser.Parse("中国");
Inicio de fecha y hora = Fecha y hora.Ahora;
Visitas h = buscador.Buscar(consulta);
Fin de fecha y hora = Fecha y hora.Ahora;
mucho tiempo = inicio.Ticks - fin.Ticks;
Console.WriteLine("用时{0}毫秒", hora);
}
}
}