PostgreSQL的全文索引索引是单字还是双字符?

时间:2011-09-05 13:03:22

标签: postgresql full-text-search

执行以下查询时:

select count(*) from myTextTable where tsv @@ plainto_tsquery('english', 'TERM');

我注意到当TERM长度为1或2个字符时,PostgreSQL不使用GIN索引(我在tsv列上定义); 3个或更多字符可以正常工作。

据我所知,通过索引1或2个字符的术语,索引的大小会大大增加,但是快速检索包含特定1或2个字符术语的文本对于我正在开发的应用程序至关重要。

是否有一些全文搜索配置参数来索引1或2个字符的术语?

2 个答案:

答案 0 :(得分:0)

前段时间,我编写了自己的to_tsquery()和to_tsvector()方法(在Python中),因为 我想要更多的控制权。 AFAIK过滤发生在plainto_tsquery()中。如果替换此方法,也可以索引单个字符。

答案 1 :(得分:0)

此问题现已通过(a)从页面中删除大量噪音文本(使用语言检测)和(b)删除/重新创建GIN索引来解决。我的猜测是,嘈杂的文本引起了词位数量的爆炸,并且索引变得无法使用,或者被查询计划器分类。 -