2010-07-21 3 views
7

Ich bin ein komplettes Noobie mit Lucene und bisher ein großer, großer Fan.Suche über Felder in Lucene

Ich bin jetzt auf der Suche nach einigen Ressourcen zum Speichern von Daten und Durchsuchen von C# und dotnet. Jede LINQ-Probe wäre ein großer Bonus für mich.

Insbesondere wenn ich ein Dokument habe, das zwei Felder wie Titel und Beschreibung definiert hat, wie kann ich in beiden suchen?

Im folgenden Beispiel möchte ich Titel und Beschreibung Felder suchen.

zB:

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

und dann;

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

Antwort

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

Ausgezeichnet, danke. – griegs