PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy PostgreSQL używa tf-idf?

Nie. W funkcji ts_rank nie ma natywnej metody klasyfikacji wyników przy użyciu ich globalnej (korpusowej) częstotliwości. Algorytm rankingu ustala jednak rangę na podstawie częstotliwości w dokumencie:

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

Jeśli więc wyszukam „pies|chihuahua”, poniższe dwa dokumenty będą miały tę samą rangę, pomimo stosunkowo mniejszej częstotliwości słowa „chihuahua”:

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

Jednak następujący wiersz otrzymałby wyższą pozycję niż poprzednie dwa wiersze powyżej, ponieważ zawiera dwa razy w dokumencie token rdzenia „pies”:

"dog lovers have an average of 1.5 dogs"

W skrócie:wyższa częstotliwość terminów w dokumencie powoduje wyższą rangę, ale niższa częstotliwość terminów w korpusie nie ma wpływu.

Jedno zastrzeżenie:wyszukiwanie tekstowe ignoruje słowa stopu, więc nie dopasujesz słów o bardzo wysokiej częstotliwości, takich jak „the”, „a”, „of” itp. (zakładając, że poprawnie ustawiłeś język)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zachować porządek, by dzieci pojawiały się po rodzicach?

  2. Funkcje agregujące pierwszą i ostatnią wartość w postgresql, które działają poprawnie z wartościami NULL

  3. Jak uzyskać min/max dwóch liczb całkowitych w Postgres/SQL?

  4. BŁĄD :Indeks kolumny jest poza zakresem:1, liczba kolumn:0

  5. Jak porównać daty w polach datetime w Postgresql?