Sli*_*lim 3 postgresql full-text-search
我想获取用户在数据库中输入的单词:
select name
from users
where to_tsvector(name) @@ to_tsquery('$word:*')
Run Code Online (Sandbox Code Playgroud)
我提到word = alain john smith,当我运行查询时,我收到此错误:
syntax error in tsquery: "alain john smith"
Run Code Online (Sandbox Code Playgroud)
无法识别其输入解析查询plainto_tsquery 中的布尔运算符、权重标签或前缀匹配标签
我该如何解决这个问题?
Atsquery不能包含alain john smith,因为解析器会将其拆分为三个单词。
如果您有 PostgreSQL 9.6 或更高版本,则可以使用
to_tsquery('alain <-> john <-> smith')
Run Code Online (Sandbox Code Playgroud)
它使用“后跟”运算符<->。
在旧版本中,您能做的最好的事情是
to_tsquery('alain & john & smith')
Run Code Online (Sandbox Code Playgroud)
它将匹配包含所有三个单词的字符串,但不一定相邻或按此顺序。
| 归档时间: |
|
| 查看次数: |
2171 次 |
| 最近记录: |