Следующий текстовый поиск PostgreSQL
select
ID, DISPLAY_NAME,
ts_rank_cd(to_tsvector('english', display_name), query) as RANK
from
my_table,
to_tsquery('english', 'John:*&Bernard:*') as query
where
to_tsvector('english', display_name) @@ query
order by RANK DESC
производит
ID DISPLAY_NAME RANK
=====================================
82683 "BERNARD JOHN SMBZh" 0.05
63815 "BERNARD JOHN []zkP" 0.05
68204 "BERNARD JOHN uPmYB" 0.05
29666 "John Bernard iECx" 0.05
44256 "John Bernard DpIff" 0.05
52601 "BERNARD JOHN ivRTX" 0.05
80250 "BERNARD JOHN b'nVp" 0.0430677
, но мне бы очень хотелось, чтобы записи "John Bernard *" имели более высокий ранг, потому чтов «документе» появляются в том же порядке, что и запрос.Возможно ли это?
Например, такой результат:
ID DISPLAY_NAME RANK
=====================================
29666 "John Bernard iECx" 0.10
44256 "John Bernard DpIff" 0.10
82683 "BERNARD JOHN SMBZh" 0.05
63815 "BERNARD JOHN []zkP" 0.05
68204 "BERNARD JOHN uPmYB" 0.05
52601 "BERNARD JOHN ivRTX" 0.05
80250 "BERNARD JOHN b'nVp" 0.0430677
Cheers Craig