sql >> Base de Datos >  >> RDS >> PostgreSQL

¿PostgreSQL usa tf-idf?

No. Dentro de la función ts_rank, no existe un método nativo para clasificar los resultados utilizando su frecuencia global (corpus). Sin embargo, el algoritmo de clasificación clasifica según la frecuencia dentro del documento:

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

Entonces, si busco "perro|chihuahua", los siguientes dos documentos tendrían el mismo rango a pesar de la frecuencia relativamente más baja de la palabra "chihuahua":

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

Sin embargo, la siguiente línea obtendría una clasificación más alta que las dos líneas anteriores, porque contiene el token derivado "perro" dos veces en el documento:

"dog lovers have an average of 1.5 dogs"

En resumen:una frecuencia de términos más alta dentro del documento da como resultado una clasificación más alta, pero una frecuencia de términos más baja en el corpus no tiene impacto.

Una advertencia:la búsqueda de texto ignora las palabras vacías, por lo que no encontrará coincidencias en palabras de frecuencia ultra alta como "el", "a", "de", "para", etc. (suponiendo que haya configurado correctamente su idioma)