2

请问有谁知道这是为什么:

SELECT to_tsvector('an'); 

只返回

SELECT to_tsvector('nn');

或者

SELECT to_tsvector('n');

或者

SELECT to_tsvector('aa');

做?

我正在 SUPABASE 上运行的 PostgreSQL 13 上对此进行测试。

谢谢

4

1 回答 1

2

因为“an”是您当前设置中的停用词(可能是英语,默认设置)。

文档

to_tsvector 函数在内部调用一个解析器,它将文档文本分解为标记并为每个标记分配一个类型。对于每个令牌,都会查阅字典列表(第 12.6 节),其中列表可能因令牌类型而异。

而且(强调我的)...

有些词被识别为停用词(第 12.6.1 节),这会导致它们被忽略,因为它们出现得太频繁以至于在搜索中没有用处。

于 2021-10-26T20:13:07.153 回答