2 Stimmen

ConstantScoreRangeQuery in Lucene

Wie ist Lucenes ConstantScoreRangeQuery besser als das alte RangeQuery?

In welchen Fällen solltest du weiterhin RangeQuery verwenden?

2voto

Yuval F Punkte 20547

Laut der RangeQuery-Dokumentation in Ihrem Link, ein ConstantScoreRangeQuery:

  • ist schneller als RangeQuery.
  • verursacht keine BooleanQuery.TooManyClauses-Ausnahme, wenn der Wertebereich groß ist.
  • beeinflusst die Bewertung nicht aufgrund der Seltenheit einzelner übereinstimmender Begriffe.

Angenommen, Sie möchten seltener auftretende Begriffe höher bewerten (sagen wir, Sie suchen in einem Bereich von Stunden, möchten aber, dass die selteneren Stunden höher bewertet werden - vielleicht suchen Sie nach einer "langsamen" Tageszeit, um einen Backup-Prozess auszuführen). In diesem Fall scheint die ältere RangeQuery bevorzugt zu sein.

Die nächste Generation wird die TrieRangeQuery sein, derzeit im Beitragsteil. Es wird wahrscheinlich Teil des Lucene 2.9-Kerns sein. Es bietet schnellere Bereichsabfragen als beide anderen Methoden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X