gpt4 book ai didi

postgresql - 如何并发创建Gin索引? POSTGRES 和 Rails 4.2

转载 作者:行者123 更新时间:2023-11-29 12:26:48 24 4
gpt4 key购买 nike

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

  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

  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

我收到以下错误(分别)

PG::UndefinedObject: ERROR: data type character varying has no default operator class for access method "gin"

ActiveRecord::StatementInvalid: PG::UndefinedObject: ERROR: data type character varying has no default operator class for access method "gin" PG::SyntaxError: ERROR: syntax error at or near "CREATE"

欢迎所有的帮助和见解,谢谢

最佳答案

您问这个问题已经 4 年多了,但我仍然在寻找相同问题的答案时进入了这个主题。由于我已经设法解决了这个问题,所以我将与您以及最终来到这里的其他人分享解决方案。

尝试将这些扩展添加到迁移文件中的 changeup 方法。请注意,并非每个都需要,但我发现有时一个是不够的。 btree_gin 在我的案例中有效。试试吧!

enable_extension "plpgsql"
enable_extension "btree_gin"
enable_extension "pg_trgm"
enable_extension "fuzzystrmatch"
enable_extension "btree_gist"

关于postgresql - 如何并发创建Gin索引? POSTGRES 和 Rails 4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30790949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com