【发布时间】:2013-03-27 11:35:07
【问题描述】:
我尝试使用 postgresql-8.4 & django 实现全文/部分文本搜索
SELECT * FROM fts WHERE body_tsvector @@ plainto_tsquery('english','hello welcome')
可用记录是
'hello world'
'hello old world'
'hi welcome'
但是这个查询的结果并不像预期的那样,显示零记录,如何使用plainto_tsquery进行部分/全文搜索?提前致谢。
【问题讨论】:
-
在 9.2 上执行了相同的命令序列并得到了这个结果:
SELECT * FROM fts WHERE body_tsvector @@ plainto_tsquery('english','hellow world')=> 0 条记录返回。SELECT * FROM fts WHERE body_tsvector @@ plainto_tsquery('english','hello world')=> 返回 3 条记录。注意第一个查询中的w字符,我猜这只是拼写错误,但如果没有这个拼写错误,它就可以正常工作。 -
现在我更正了这个问题。
-
更正后的查询为更正后的数据集返回 0 个结果,这是正确的行为,但您期望什么?
-
我的意思是部分文本搜索,即返回所有三个记录。这些每个记录至少包含一个子键,即第一个 2 'hello' 单词中的第一个和第 3 条记录中的 'welcome' 单词。
-
@Dfr,就像这个查询的输出 SELECT * FROM fts WHERE body_tsvector @@ to_tsquery('hellow | welcome') ,plainto_tsquery 可以吗?
标签: sql django postgresql full-text-search