小编ndb*_*ent的帖子

如何对 JSONB 列中的单个值实现全文搜索?

我有一张表,用于存储两个人之间的对话。

数据将如下所示:

CREATE TABLE foo
AS
  SELECT $$[
    { "user": 1, "timestamp": 1, "message": "First message" },
    { "user": 2, "timestamp": 2, "message": "Second message" },
    { "user": 2, "timestamp": 3, "message": "Debounced message from same user" },
    { "user": 1, "timestamp": 4, "message": "Last message" }
  ]$$::jsonb AS jsondata;
Run Code Online (Sandbox Code Playgroud)

我从不需要单独查找每条消息,所以我只想将整个对话存储在一个jsonb字段中。我需要对所有消息执行全文搜索。

我的第一个想法是创建一个新的文本列,将所有消息连接到一个长字符串中,然后在该列上创建一个三元组 GIN 索引。

这似乎是一种浪费大量空间的 hack,所以我想避免中间列。如何直接从jsonb列创建索引?

postgresql index full-text-search json

5
推荐指数
1
解决办法
2583
查看次数

标签 统计

full-text-search ×1

index ×1

json ×1

postgresql ×1