转义to_tsquery中的特殊字符

Kon*_*rus 14 postgresql full-text-search

你如何在传递给字符串的空格中包含特殊字符to_tsquery?例如,这种查询:

select to_tsquery('AT&T');
Run Code Online (Sandbox Code Playgroud)

生产:

NOTICE:  text-search query contains only stop words or doesn't contain lexemes, ignored

 to_tsquery 
------------

(1 row)
Run Code Online (Sandbox Code Playgroud)

编辑:我也注意到有相同的问题to_tsvector.

Dav*_*ber 8

一个简单的解决方案是创建 tsquery 如下:

select $$'AT&T'$$::tsquery;
Run Code Online (Sandbox Code Playgroud)

您可以进行更复杂的查询:

select $$'AT&T' & Phone | '|Bang!'$$::tsquery;
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅文本搜索文档


per*_*lmq 5

我发现这条评论非常有用,它使用了plainto_tsquery('AT&T)函数/sf/answers/1121439581/

  • 无论如何支持部分匹配,例如在末尾添加 :* 吗? (9认同)