PostgreSQL 全文索引

-- 首先要创建自定义的词典,在不使用停用词文件的情况下创建自定义词典,例如:
CREATE TEXT SEARCH DICTIONARY english_stem_nostop ( Template = snowball , Language = english );
-- 请注意,在上面我省略了StopWords参数。
-- 然后创建一个新的配置来使用你的新词典:
CREATE TEXT SEARCH CONFIGURATION public.english_nostop ( COPY = pg_catalog.english ); ALTER TEXT SEARCH CONFIGURATION public.english_nostop ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, hword, hword_part, word WITH english_stem_nostop;


-- 添加全文索引字段并且建立触发器 -- alter table keyword add COLUMN keyword_participle tsvector; -- create or replace function keyword_ts_trigger_function() returns trigger as $$ -- begin -- new.keyword_participle := to_tsvector('english_nostop',COALESCE(new.keyword,'') ); -- return new; -- end -- $$ language plpgsql; -- -- create trigger messages_ts_trigger -- before insert -- on keyword -- for each row -- execute procedure keyword_ts_trigger_function(); -- 创建索引 -- CREATE INDEX keyword_full_text_index on keyword -- using gin(keyword_participle);
-- 更新刚刚创建的字段
-- update keyword set keyword_participle = to_tsvector('english_nostop', COALESCE(keyword, ''));

参考文章:

https://stackoverflow.com/questions/1497895/can-i-configure-stop-words-programmatically-with-postgresql-full-text-search

https://www.youtube.com/watch?v=LS6kF43DEt8

 

转载于:https://www.cnblogs.com/ryanzheng/p/9105773.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值