我必须编写一个简单的查询,在其中查找以 B 或 D 开头的人名:
SELECT s.name
FROM spelers s
WHERE s.name LIKE 'B%' OR s.name LIKE 'D%'
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法重写它以提高性能。所以我可以避免or和/或like?
postgresql index regular-expression pattern-matching string-searching
我必须搜索带连字符的单词,例如“早安”、“晚安”等。
我的查询是:
select id, ts_headline(content,
to_tsquery('english','good-morning'),
'HighlightAll=true MaxFragments=100 FragmentDelimiter=$')
from table
where ts_content @@ to_tsquery('english','good-morning');
Run Code Online (Sandbox Code Playgroud)
执行此查询时,我还会分别获得“good”和“morning”的结果。但我想要完全匹配的单词和片段。
(因为ts_content我使用相同的默认配置english来创建tsvector.)
如何在 PostgreSQL 全文搜索中搜索此类带连字符的单词?
我正在使用 debian 压缩包,它说功能不存在?
postgresql pattern-matching postgresql-8.4 postgresql-extensions