2010-07-21 13 views
7

Jestem kompletnym noobiem z Lucene i do tej pory wielkim, wielkim fanem.Przeszukaj pola w Lucene

Poszukuję teraz pewnych zasobów dotyczących przechowywania danych i wyszukiwania za pomocą C# i dotnet. Wszelkie próbki LINQ byłyby dla mnie dużym bonusem.

W szczególności, jeśli mam dokument, który ma dwa pola zdefiniowane jako tytuł i opis, w jaki sposób mogę wyszukiwać w obu?

w poniższym przykładzie chciałbym przeszukać zarówno pola tytułu, jak i opisu.

np

 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); 

a następnie;

 // 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"); 

Odpowiedz

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

Doskonale, dziękuję. – griegs