PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwendet PostgreSQL tf-idf?

Nein. Innerhalb der ts_rank-Funktion gibt es keine native Methode, um Ergebnisse anhand ihrer globalen (Korpus-)Häufigkeit zu ordnen. Der Rangalgorithmus ordnet jedoch basierend auf der Häufigkeit innerhalb des Dokuments:

http://www.postgresql.org/docs/9.3/static /textsearch-controls.html

Wenn ich also nach "dog|chihuahua" suche, würden die folgenden beiden Dokumente trotz der relativ geringeren Häufigkeit des Wortes "chihuahua" denselben Rang haben:

"I want a dog"
"I want a chihuahua"

Die folgende Zeile würde jedoch einen höheren Rang erhalten als die beiden vorangegangenen Zeilen darüber, da sie das Stammzeichen „Hund“ zweimal im Dokument enthält:

"dog lovers have an average of 1.5 dogs"

Kurz gesagt:Eine höhere Begriffshäufigkeit innerhalb des Dokuments führt zu einem höheren Rang, eine niedrigere Begriffshäufigkeit im Korpus hat jedoch keine Auswirkungen.

Eine Einschränkung:Die Textsuche ignoriert Stoppwörter, sodass Sie keine Übereinstimmungen mit ultrahochfrequenten Wörtern wie „the“, „a“, „of“, „for“ usw. finden (vorausgesetzt, Sie haben Ihre Sprache richtig eingestellt)