ruby-on-rails - 在 jsonb 字段上添加索引

标签 ruby-on-rails postgresql indexing jsonb

我需要在 Postgres 中搜索 jsonb 字段的数组键的值。

field: {'array_key' : [1, 2, 3, 4]}

是否可以在 array_key 上添加索引,或者是否有任何优化的方法来搜索值?

搜索查询类似于

select * where field['array_key'].include?(2)

最佳答案

您可以在 jsonb 键上创建索引,

add_index :table_name, :field, :using => :gin, :expression => "(field->'array_key')", :name => 'index_table_name_on_field_array_keys'

然后,您可以搜索索引键,

where("table_name.field->'array_keys' @> ?", Array(2))

关于ruby-on-rails - 在 jsonb 字段上添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34041821/

相关文章:

ruby-on-rails - Rails 5 devise_token_auth 无法验证 CSRF token 的真实性

ruby-on-rails - Ruby\Rails 沙箱

ruby-on-rails - 导入 psql 文件 trows "ERROR: role "userabc“不存在”

javascript - Prisma 3 关系聚合(求和)

MySQL多列索引和OR语句

ruby-on-rails - 在 git 中管理 schema.rb 的首选方法是什么?

ruby-on-rails - 使用来自生产的数据播种开发数据库

postgresql - 根据多个参数搜索 postgres 表但不需要所有参数

R 返回每行最小列的索引

indexing - 长时间重建后确保 Solr/Lucene 索引为 "up to date"的最佳实践