2009-05-22 3 views
2

Ich verwende Lucene.Net'sMultiFieldQueryParser, um mehrere Felder in meinen Dokumenten zu suchen. Ich möchte herausfinden, in welchem ​​Feld der Text gefunden wurde. Zum Beispiel könnte meine Suche wie folgt aussehen:Welches Feld hatte meinen Suchtext in Lucene bei Verwendung eines MultiFieldQueryParser?

var parser = new MultiFieldQueryParser(new string[] {"question","answer"}, analyzer); 
var query = parser.Parse(searchphrase); 

for(int idx=0; idx<hits.Length() ++idx) 
{ 
    var doc = hits.Doc(i); 
    // was this hit found in "answer" or "question"?? 
} 

Ich will, um zu bestimmen, ob den Suchbegriff in der Antwort gefunden wurde oder Frage Feld

Antwort

3

Der einzige Weg wäre, zu sagen, zu speichern, die Felder, lade sie für jeden Treffer ein und untersuche sie für ein Match.

Ein Treffer kann aus einigen Begriffen des Suchbegriffs in der Frage resultieren, der Rest in der Antwort. Wenn Sie Fragen und Antworten zusammen suchen, können Sie nicht einfach feststellen, welches was war.

Verwandte Themen