执行以下查询时:
select count(*) from myTextTable where tsv @@ plainto_tsquery('english', 'TERM');
我注意到当TERM长度为1或2个字符时,PostgreSQL不使用GIN索引(我在tsv列上定义); 3个或更多字符可以正常工作。
据我所知,通过索引1或2个字符的术语,索引的大小会大大增加,但是快速检索包含特定1或2个字符术语的文本对于我正在开发的应用程序至关重要。
是否有一些全文搜索配置参数来索引1或2个字符的术语?
答案 0 :(得分:0)
前段时间,我编写了自己的to_tsquery()和to_tsvector()方法(在Python中),因为 我想要更多的控制权。 AFAIK过滤发生在plainto_tsquery()中。如果替换此方法,也可以索引单个字符。
答案 1 :(得分:0)
此问题现已通过(a)从页面中删除大量噪音文本(使用语言检测)和(b)删除/重新创建GIN索引来解决。我的猜测是,嘈杂的文本引起了词位数量的爆炸,并且索引变得无法使用,或者被查询计划器分类。 -