Luí*_*sta 6 postgresql full-text-search
我有这个全文搜索功能:
CREATE OR REPLACE FUNCTION search_questions(psearch text)
RETURNS TABLE (questionid INTEGER) AS $func$
BEGIN
return QUERY
SELECT DISTINCT (questions.publicationid)
FROM questions
WHERE to_tsvector(coalesce(questions.title, '')) @@ to_tsquery(psearch)
OR
publicationid IN (
SELECT DISTINCT(publications.publicationid) FROM publications WHERE to_tsvector(coalesce(publications.body, '')) @@ to_tsquery(psearch)
)
;
END
$func$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
但它只适用于单个单词参数.如果我搜索"用户测试",则返回
ERROR: syntax error in tsquery: "user test"
有没有办法搜索带有空格的文本?
亲切的问候
Luí*_*sta 11
我找到了解决方法.在这里
更换:
to_tsquery(psearch)
有:
plainto_tsquery(psearch)
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |