首页 > 解决方案 > 为什么这个是空的?

问题描述

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

SELECT to_tsvector('an'); 

只返回

SELECT to_tsvector('nn');

或者

SELECT to_tsvector('n');

或者

SELECT to_tsvector('aa');

做?

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

谢谢

标签: postgresqlfuzzy-searchsupabasesupabase-database

解决方案


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

文档

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

而且(强调我的)...

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


推荐阅读