PostgreSQL 中看似不完整的文本向量化

Seemingly incomplete vectorization of text in PostgreSQL

任何人都可以解释一下这个 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;

在这种情况下,当我尝试按实际文本进行搜索时 'organic',搜索结果为空。

to_tsvector 从 'organic' 到 'organ' (无论如何都是英文)。 to_tsquery 也这样做,但你没有使用它。通过使用 ::tsquery,您可以直接进行转换,从而绕过词干分析器。

并且 'organic' 不匹配 'organ'。您必须对匹配运算符的两边应用相同的词干提取规则。