1

我尝试使用 postgresql-8.4 & django 实现完整/部分文本搜索

SELECT * FROM fts WHERE body_tsvector @@ plainto_tsquery('english','hello welcome')

可用记录是

'hello world'
'hello old world'
'hi welcome'

但是这个查询的结果并不像预期的那样,它显示零记录,如何使用plainto_tsquery进行部分/全文搜索?提前致谢。

4

1 回答 1

1

看起来您希望plainto_tsquery执行|(OR) 查询。但文档状态:

plainto_tsquery 将无格式文本 querytext 转换为 tsquery。与 to_tsvector 一样对文本进行解析和规范化,然后在幸存的单词之间插入 & (AND) 布尔运算符。

因此,要执行您想要的操作,您必须自己解析文本,然后使用|运算符创建一个 ts_query。

SELECT * FROM fts 
WHERE body_tsvector @@ to_tsquery('english','hello | welcome');
于 2013-04-05T11:37:29.193 回答