Frage

Wir verwenden Solr, um Artikel mit verschiedenen Längen zu durchsuchen. Wir indizieren sowohl beschreibende Metadaten (Titel, Autor, Kategorie, Schlüsselwörter usw.) als auch der vollständige Artikeltext. Wir steigern die Relevanz zur Indexzeit nicht - alle Boosts werden zur Abfragezeit durchgeführt (wir verwenden Dismax, gekoppelt mit verschiedenen QF-, PF- und BF -Boosts).

Derzeit verwendet unser FullText -Feld die Standard -Obstnorms = False; Infolgedessen haben alle gleichen, kürzeren Artikel (2-3-Säulen-Zoll-Artikel) häufig eine höhere Relevanz als mehrseitige Artikel (längere Länge).

In unserem Fall ist die Artikellänge ein wesentlicher Indikator für die Relevanz, und daher denke ich über die Einstellung von Obstnorms = Richtig in unserem FullText -Feld.

Fragen: 1. Warum ist das Standardverhalten von Lucene/Solr, um die kürzeren Feldlängen über höher zu steigern? Was ist die Argumentation? 2. Warum sollte ich keine weglassen? Ich muss keine Abfragen in diesem Bereich ankurbeln und auf diesem Gebiet keine Facette verwenden.

War es hilfreich?

Lösung

Frage 1:

Die Steigerung der kürzeren Feldlängen über höhere Feldlängen hat mit einem grundlegenden Konzept der Bestimmung der Dokumentrelevanz namens TF-IDF zu tun (siehe http://en.wikipedia.org/wiki/tf%E2%80%93idf). Beachten Sie, dass Ihre Suche zwei Dokumente zurückgegeben hat: Das erste ist 100 Wörter und der zweite ist 1.000 Wörter. Jedes enthält nur einmal Ihr Suchschlüsselwort. Da das Schlüsselwort im ersten Dokument 1% des Textes betrug, wird das kurze Dokument für Ihre Suche als relevanter beurteilt als das lange Dokument, in dem das von Ihnen gesuchte Schlüsselwort nur 0,1% des Textes betrug.

Frage 2:

Aufgrund Ihrer Anforderungen klingt es vielleicht, dass Sie versuchen möchten, Normen wegzulassen. Dies kann jedoch Ihre Suchergebnisse auf eine Weise verzerren, die Sie nicht erwarten. Es könnte sein, dass Sie von einigen der schönen Eigenschaften der Normalisierung der Länge profitiert haben und es nicht bemerkt haben. Ein anderer Ansatz könnte darin bestehen, die Dokumentlänge als ein Tagsfeld wie das Kennzeichnung von Dokumenten als "kurz", "mittel" und "lang" zu speichern und dann Dokumente zu steigern, die mit langer oder langer und mittelgroßem oder was auch immer übereinstimmen. Dies würde Ihren Endbenutzern auch die Möglichkeit geben, bei der Suche nach Dokumentenlänge zu filtern.

Wenn ich wieder gute Eigenschaften der Längenormalisierung erwähne, können Sie sich Fälle vorstellen, in denen ein super langer Artikel existiert, der 10 verschiedene Themen berührt, von denen 1 mit der Suche des Benutzers oder einem langen Artikel übereinstimmt, das nur über 1 Thema spricht, das, das das wurde gesucht. In diesem Fall möchten Sie den langen Artikel wahrscheinlich gegenüber dem Super Long -Artikel bevorzugen (auch wenn der super lange Artikel mehrmals mit dem Suchschlüsselwort übereinstimmt). Es hängt alles mehr von Ihren Daten und Ihren Anwendungsfällen ab.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top