我在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'时,我没有得到任何行。
为什么会这样?
答案 0 :(得分:3)
在第二种情况下没有匹配,因为to_tsvector()会降低所有词位。使用to_tsquery()来构建查询,它也会处理案例问题:
SELECT * FROM chamado WHERE to_tsvector('portuguese', titulo) @@ to_tsquery('portuguese', 'URA')