首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同时创建Gin指数?POSTGRES & Rails 4.2

如何同时创建Gin指数?POSTGRES & Rails 4.2
EN

Stack Overflow用户
提问于 2015-06-11 20:36:10
回答 1查看 1.1K关注 0票数 2

我正在使用postgresql和rails 4学习thoughtbot关于多索引全文搜索的教程,而且我似乎无法让索引迁移工作。我试过了

代码语言:javascript
复制
  disable_ddl_transaction!  
  def change
    add_index(:cards, :object, using: 'gin', algorithm: :concurrently)
    add_index(:cards, :content, using: 'gin', algorithm: :concurrently)
    add_index(:tags, :name, using: 'gin', algorithm: :concurrently)     
  end

代码语言:javascript
复制
  def up
    ActiveRecord::Base.connection.execute <<-SQL
    CREATE INDEX CONCURRENTLY index_cards_on_object ON cards USING gin(to_tsvector('english', object));
    CREATE INDEX CONCURRENTLY index_cards_on_content ON cards USING gin(to_tsvector('english', content));
    CREATE INDEX CONCURRENTLY index_tags_on_name ON tags USING gin(to_tsvector('english', name));
   SQL
 end
 def down
    ActiveRecord::Base.connection.execute <<-SQL
    DROP INDEX index_cards_on_object;
    DROP INDEX index_cards_on_content;
    DROP INDEX index_tags_on_name;
  SQL
end

我得到以下错误(逐级)

未定义对象:错误:数据类型字符变化没有访问方法"gin“的默认操作符类

ActiveRecord::StatementIn有效性: PG::UndefinedObject: ERROR: data类型字符变量没有用于访问方法"gin“PG::SyntaxError: ERROR:语法错误或接近"CREATE”的默认操作符类

欢迎所有的帮助和洞察力,谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-09-17 14:34:53

自从你问这个问题以来已经有4年多了,但我还是在这个帖子中找到了同样的问题的答案。由于我已经设法处理它,我将与您和其他人分享解决方案,在这里结束。

尝试将这些扩展添加到迁移文件中的changeup方法中。请注意,并不是每一个都需要,但我已经看到,有时一个是不够的。btree_gin在我的案子里工作过。试试看!

代码语言:javascript
复制
enable_extension "plpgsql"
enable_extension "btree_gin"
enable_extension "pg_trgm"
enable_extension "fuzzystrmatch"
enable_extension "btree_gist"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30790949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档