Ich wurde vorgeschlagen, Field.Set OmitNorms (true) zu verwenden; beim Erstellen der Dokumente für Lucenesearch, um das Ergebnis nach der Anzahl der Treffer zu sortieren, aber ich bin nicht klar, was es tut und ist es sicher.
das Ergebnis nach der Anzahl der Treffer sortieren bedeutet, dass das Dokument, in dem der Suchtext maximal gefunden wird, oben stehen sollte, gefolgt von den mit weniger Übereinstimmungen für den Suchtext.
Ich weiß es albern, aber ich möchte wissen, bevor ich dies umsetze bitte helfen.
Lesen Sie diesen Artikel für einen guten Absatz , um zu erfahren, was Normen auslassen im Sinne der Optimierung. Grundsätzlich ist es so, als hätte man einen Mini-Lucene-Index für die Begriffe in einem Feld, also ist es wirklich nur nützlich für Felder, die viel Text in sich haben.
Standardmäßig wird ein Feld mit seinem norm
, einem Produkt aus dem Boost des Dokuments, dem Boost des Feldes und dem Normalisierungsfaktor des Felds indiziert (siehe Ähnlichkeitsscoring ). Dies fügt dem Speicher- und Speicherverbrauch jedes Felds ein Byte hinzu, das für ausgewählte Felder oder Feldtypen mit omitNorms
weggelassen werden kann.
Die Boosts werden während der Indizierung angegeben, während lengthNorm
so berechnet wird, dass bei zwei Dokumenten, die mit dem Abfragebegriff f
mal übereinstimmen, das längere Dokument einen niedrigeren Wert erhält.
Wenn Sie also möchten, dass Ihre Dokumente basierend auf der genauen Anzahl übereinstimmender Begriffe und nicht nach der Anzahl der Begriffe im Verhältnis zur Dokumentlänge bewertet werden, verwenden Sie omitNorms
(und erhalten Sie die Speicherverbrauchsvorteile).