На вид неполная векторизация текста в PostgreSQL - PullRequest
0 голосов
/ 03 августа 2020

Может ли кто-нибудь объяснить, что кажется неполной векторизацией текста в этом Postgres SQL запросе?

with x as 
(
select 'the organic organization organizes organisms'::text as t,
to_tsvector('english','the organic organization organizes organisms'::text) tvect
)
SELECT t, 
left(ts_headline(t, 'organic'::tsquery), 100),
ts_rank_cd(tvect, 'organic'::tsquery)
 FROM x
WHERE (tvect @@ 'organic'::tsquery) 
order by ts_rank_cd(tvect, 'organic'::tsquery) desc;

, когда я пытаюсь выполнить поиск по фактическому тексту в этом случае 1007 * ', результат поиска пуст.

1 Ответ

0 голосов
/ 03 августа 2020

to_tsvector переводит 'organi c' в 'organ' (в любом случае на английском sh). То же самое делает to_tsquery, но вы этим не пользуетесь. Используя :: tsquery, вы выполняете преобразование напрямую, минуя стеммер.

И 'organi c' не соответствует 'organ'. Вы должны применить одни и те же правила выделения корней к обеим сторонам оператора сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...