On 14.02.2017 18:35, Thomas Nyberg wrote:
Here both 'hello' and 'hello world' are ranked equally highly when searching with 'hello'. What I'm wondering is, is there a way within postgres to have it match higher to just 'hello' than 'hello world'? I.e. something like it slightly down-weights extraneous terms? Of course in general I don't know the query or the field strings ahead of time. Thanks for any help! Cheers, Thomas
Hello, try the query: SELECT s, ts_rank(vector, query) AS rank FROM t, to_tsvector(s) vector, to_tsquery('hello') query WHERE query @@ vector; s | rank -------------+----------- hello | 0.0607927 hello world | 0.0303964 (2 rows) And read about **normalization** in [1] https://www.postgresql.org/docs/current/static/textsearch-controls.html -- Artur Zakirov Postgres Professional: http://www.postgrespro.com Russian Postgres Company -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general