2009-08-24 17 views
2

Ich weiß, ich habe das gesehen und ich kann es einfach nicht finden.Lucene.Net geben ein Feld mehr Gewicht als ein anderes

Ich habe 2 Felder, die ich suche - Name und Tags. Ich möchte, dass Ergebnisse, die auf einer Übereinstimmung im Feld "Name" basieren, eine höhere Punktzahl haben als diejenigen, die auf dem Feld "Tags" basieren.

Wie kann ich das tun?

Dank

+0

Hallo Mo! Ich versuche auch, das gleiche Problem zu lösen? Kannst du mir bitte sagen, ob die Antwort von "Robert Elwell" deine Absicht gelöst hat? Und wenn ja, kannst du mir bitte Syntax/Code-Schnipsel geben, wenn es dir nichts ausmacht ?? –

Antwort

4

Neben der Erhöhung während der Suche können Sie Felder während der Indizierung auch anders aufladen. Dies bedeutet, dass eine allgemeine Suche nach einem Begriff, der in einem der beiden Felder angezeigt werden kann, immer noch eine bessere Bewertung für diejenigen ergibt, die mit Ihrem bevorzugten Feld übereinstimmen, ohne explizit anzugeben, wo Sie nach dem Begriff suchen.

+0

Das ist, was ich gesucht habe - haben Sie die Syntax? –

+0

Ich bin eher ein Zend Search Lucene Typ, aber etwas sagt mir, wenn Sie in der .NET API suchen, finden Sie den Weg dazu. Es ist eine Eigenschaft des Feldobjekts, die dann zum Dokumentobjekt hinzugefügt wird. Es ist wahrscheinlich so einfach wie field.setBoost (aNumber) oder was auch immer. Auch, wenn das ist, was Sie suchen, achten Sie darauf, zu akzeptieren und upvote :) –

1

Sie die boost operator verwenden können:

title_wa: etwas^4

wenn der Titel Matches 'etwas', dann wird seine Punktzahl gesteigert werden entsprechend dem Faktor.

Verwandte Themen