Postgres:@@(双符号)是什么意思?

Ara*_*ray 5 postgresql activerecord ruby-on-rails ruby-on-rails-5 ruby-on-rails-6

最近我发现了一段 Ruby on Rails 的代码,它应该像like-operator 一样搜索字符串:

scope :search, -> (query) { where('name @@ :q', q: query) }
Run Code Online (Sandbox Code Playgroud)

但找不到任何有关它的文档。

运算符未按预期工作。那么它到底有什么作用呢?

And*_*eko 4

这是文本搜索,请查看文档

如果您不想去其他地方寻找答案,请在这里:

PostgreSQL中的运算@@符与tsquery和tsvector类型提供的全文搜索功能有关。该@@运算符用于将 tsquery 值(查询)与 tsvector 值(文档)进行比较,以确定文档是否与查询匹配。

tsvector 类型表示为全文搜索而处理的文档,而 tsquery 类型表示适合在 tsvector 文档中搜索的格式的查询。如果查询与文档匹配,则该@@运算符返回 true,否则返回 false。