sql >> Database >  >> RDS >> PostgreSQL

Gebruikt PostgreSQL tf-idf?

Nee. Binnen de ts_rank-functie is er geen native methode om resultaten te rangschikken op basis van hun globale (corpus)frequentie. Het rangschikkingsalgoritme rangschikt echter op basis van frequentie binnen het document:

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

Dus als ik zoek naar "hond|chihuahua" zouden de volgende twee documenten dezelfde rangorde hebben ondanks de relatief lagere frequentie van het woord "chihuahua":

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

De volgende regel zou echter hoger worden gerangschikt dan de vorige twee regels hierboven, omdat deze twee keer het gesteelde token "hond" in het document bevat:

"dog lovers have an average of 1.5 dogs"

Kortom:een hogere termfrequentie binnen het document resulteert in een hogere rangorde, maar een lagere termfrequentie in het corpus heeft geen impact.

Een waarschuwing:de tekstzoekfunctie negeert stopwoorden, dus u komt niet overeen met woorden met een ultrahoge frequentie zoals "de", "een", "van", "voor", enz. (ervan uitgaande dat u uw taal correct hebt ingesteld)



  1. Ontvang record per maand, maar krijg ook nul als er die maand geen records zijn

  2. Waarom is er soms een of meer hiaten in de waarde van de kolom voor automatisch verhogen?

  3. Try_Convert voor SQL Server 2008 R2

  4. Hoe kan ik een groottelimiet instellen voor een int-gegevenstype in PostgreSQL 9.5