我想获取用户在数据库中输入的单词:
select name
from users
where to_tsvector(name) @@ to_tsquery('$word:*')
我提到word = alain john smith
,当我运行查询时出现此错误:
syntax error in tsquery: "alain john smith"
plainto_tsquery
无法识别输入Parsing queries
我该如何解决?
答案 0 :(得分:1)
tsquery
不能包含alain john smith
,因为解析器会将其拆分为三个单词。
如果你有PostgreSQL 9.6或更高版本,你可以使用
to_tsquery('alain <-> john <-> smith')
使用“后跟”运算符<->
。
在旧版本中,您可以做的最好的是
to_tsquery('alain & john & smith')
将匹配包含所有三个单词的字符串,但不一定相邻或按此顺序排列。