postgresql 在postgres tsvector中搜索带有'-' in的内容无效

dm7nw8vv  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(175)

我有一个postgres tsvector标签字段,其中包含
“你好世界”“饥饿”
现在,我们让用户搜索这些术语并将它们带回来,例如,他们可以搜索显式标签。
每次用户尝试使用-进行搜索时,它都不会返回
不起作用:

SELECT 
    labels
  FROM tbt
  WHERE labels @@ to_tsquery('hello-world | jobs')

作品:

SELECT 
    labels
  FROM tbt
  WHERE labels @@ to_tsquery('hungry | jobs')

如何使-也能在tsquery搜索中工作?
我希望在查询中实现这一点,而不必更改表中的任何数据。
先谢谢你!
以上都有解释

pkwftd7m

pkwftd7m1#

由于您在构造tsvector时似乎已经绕过了to_tsvector,因此您还应该绕过to_tsquery并直接生成tsquery。例如,下面的表达式将生成true:

select 'hello-world'::tsvector @@ 'hello-world | foo'::tsquery;

相关问题