2010-07-21 16 views
7

Soy un completo noobie con Lucene y, hasta ahora, soy un gran fanático.Buscar en todos los campos en Lucene

Ahora estoy buscando algunos recursos sobre cómo almacenar datos y buscar a través de C# y dotnet. Cualquier muestra LINQ sería una gran ventaja para mí.

En particular, si tengo un documento que tiene dos campos definidos como título y descripción, ¿cómo puedo buscar en ambos?

en el ejemplo siguiente me gustaría buscar en los campos de título y descripción.

por ejemplo:

 doc = new Document(); 
     text = "Oven leek pie"; 
     doc.Add(new Field("title", text, Field.Store.YES, Field.Index.TOKENIZED)); 
     doc.Add(new Field("instructions", "Bake for 40 minutes", Field.Store.YES, Field.Index.TOKENIZED)); 
     iwriter.AddDocument(doc); 

y luego;

 // Parse a simple query that searches for "text": 
     Lucene.Net.QueryParsers.QueryParser parser = new QueryParser("title", analyzer); 

     Query query = parser.Parse("baked bacon and leek pizza"); 

Respuesta

10
string[] fields = new string[2]; 
fields[0] = "title"; 
fields[1] = "instructions"; 

Lucene.Net.QueryParsers.MultiFieldQueryParser multiFieldParser = new MultiFieldQueryParser(fields, analyzer); 
Query multiFieldQuery = multiFieldParser.Parse("20"); 
Hits multiHits = isearcher.Search(multiFieldQuery); 
+0

Excelente, gracias. – griegs

Cuestiones relacionadas