必须避免哪些字符以确保PQLEXCEPTION:错误:TSQUERY中的语法错误不会发生? 该文档没有说任何有关如何逃脱搜索字符串的说法:http://www.postgresql.org/docs/8.3/static/datatype-textsearch.html
select to_tsquery('"hello there" | hi');
谨记,您的意思是您不应该真正拥有疯狂的角色,因为它们不会与Tsvector中的任何内容相匹配。
tsquery Parser认可的(非token)字符为:\0
(
,
)
,
(whitespace),
|
,
&
,
:
,,
*
和!
。但是,您如何将查询的象征化应基于您设置字典的方式。查询中还有很多其他字符可能不需要,不是因为它们会导致语法错误,而是因为这意味着您的查询不正确。
如果是一个简单的查询,请使用
plainto_tsquery
版本,并且您不想手动创建查询。
另一个很好的人要考虑我在文档上看到的是::
https://www.postgresql.org/docs/17/textsearch-controls.html,它就像
AND
websearch_to_tsquery
plainto_tsquery
:&
:
to_tsquery
使用替代语法从queryText创建一个
websearch_to_tsquery
值,其中简单的未形式的文本是有效的查询。与tsquery
和
不同,它也认识到某些操作员。此外,此功能将永远不会引起语法错误,这使得使用原始用户提供的输入进行搜索成为可能。支持以下语法:plainto_tsquery
未点击的文本:不在引用标记中的文本将转换为由phraseto_tsquery
运算符隔开的术语,好像是由&
.处理的。
:引用标记中的文字将转换为由plainto_tsquery
运算符分开的项,就好像由
"quoted text"
<->
- .
处理。:“或”一词将转换为phraseto_tsquery
运算符。OR
- 不幸的是,就像
|
:破折号将转换为-
运算符。!
to_tsquery
一样,它似乎不支持前缀搜索,这是我想要的自动完整建议。 las.