全文Postgres

时间:2013-04-30 20:22:49

标签: postgresql indexing full-text-search tsvector

我在postgresql中创建了一个全文搜索索引。

CREATE INDEX pesquisa_idx 
ON chamado 
USING 
gin(to_tsvector('portuguese', coalesce(titulo,'') || coalesce(descricao,'')));

当我运行此查询时:

SELECT * FROM chamado WHERE to_tsvector('portuguese', titulo) @@ 'ura'

它给我回了几行。

但是当我的参数全部为大写时,不会返回任何行。例如:

SELECT * FROM chamado WHERE to_tsvector('portuguese', titulo) @@ 'URA'

当论证是'ura'时,我会得到几行;当论证是'URA'时,我没有得到任何行。

为什么会这样?

1 个答案:

答案 0 :(得分:3)

在第二种情况下没有匹配,因为to_tsvector()会降低所有词位。使用to_tsquery()来构建查询,它也会处理案例问题:

SELECT * FROM chamado WHERE to_tsvector('portuguese', titulo) @@ to_tsquery('portuguese', 'URA')