Postgresql 是否使用短语搜索运算符<-&燃气轮机;使用JSONB文档还是仅使用关系表?

Postgresql 是否使用短语搜索运算符<-&燃气轮机;使用JSONB文档还是仅使用关系表?,postgresql,full-text-search,jsonb,string-search,Postgresql,Full Text Search,Jsonb,String Search,短语搜索操作符是用于JSONB文档还是仅用于PostgreSQL中的关系表 我还没有尝试过,因为我还没有设置Postgres主机。这个问题的答案将有助于确定我将使用什么数据库和什么工具 我在以下位置找到此示例代码: 从文档中选择文档id、文档文本 WHERE document_tokens@@to_tsquery('jump quick'); 我只需要知道JSONB文档是否支持此运算符。短语搜索功能集成到了。您的显示屏左侧显示一个tsvector,右侧显示一个tsquery。可以从任何字符类型

短语搜索操作符
是用于JSONB文档还是仅用于PostgreSQL中的关系表

我还没有尝试过,因为我还没有设置Postgres主机。这个问题的答案将有助于确定我将使用什么数据库和什么工具

我在以下位置找到此示例代码:

从文档中选择文档id、文档文本
WHERE document_tokens@@to_tsquery('jump quick');

我只需要知道JSONB文档是否支持此运算符。

短语搜索功能集成到了。您的显示屏左侧显示一个
tsvector
,右侧显示一个
tsquery
。可以从任何字符类型以及JSON文档构建
tsvector

相关的:

您可以使用以下选项之一将
json
jsonb
文档转换为文本搜索向量:

请注意,这些仅包括JSON文档中的值,而不包括键。通常,这就是你想要的。 基本示例:

SELECT to_tsvector(jsonb '{"foo":"jump quickly"}')
    @@ to_tsquery('jump <-> quick:*');
显然,会产生更大的
tsvector

两者都可以编制索引(这是文本搜索的要点)。只有索引绑定到关系表。(你可以!)

表达式本身可以应用于任何值,而不是像您所暗示的那样绑定到表。

您有答案吗?
to_tsvector()
json(b)_to_tsvector()
SELECT to_tsvector(jsonb '{"foo":"jump quickly"}')
    @@ to_tsquery('jump <-> quick:*');
SELECT to_tsvector((jsonb '{"foo-fighter":"jump quickly"}')::text)
    @@ to_tsquery('foo <-> fight:*');