如何让Postgres10.x不从文本搜索中删除文章和代词



我正在为我们的应用程序开发搜索界面,注意到Postgres正在从搜索词中删除冠词和代词:

> select to_tsvector('english', 'welcome to your house')
< 'hous':4 'welcom':1

如果存在标题为";Yours and Hers":

> select to_tsvector('english', 'yours and hers')
< (blank)

如何配置文本搜索以停止删除文章和代词?我仍然想获得搜索";跳跃";并使其匹配";跳跃";。

所以你想继续词干,但要去掉停止词。你可以修改英语词典,但这通常是个坏主意,因为这会带来升级的危险。(在转储和恢复或运行pg_upgrade后,您的更改将丢失(,这会让不知道更改的人感到困惑。因此,您可以制作一个不带停止语的副本。

create text search dictionary english_stem_nostop ( template = snowball, language = english );
create text search configuration english_nostop ( copy = english);
alter text search configuration english_nostop alter mapping replace english_stem with english_stem_nostop;
select to_tsvector('english_nostop', 'welcome to your house');
to_tsvector             
-------------------------------------
'hous':4 'to':2 'welcom':1 'your':3

最新更新