Я ищу способ легко обновить свой индекс Elasticsearch.
Я перехожу из:
class Product < ApplicationRecord
searchkick
end
To:
class Product < ApplicationRecord
searchkick text_middle: [:name, :item_volume]
end
Моя текущая идея состоит в том, чтобы
- открыть консоль rails в целевой среде
- обновить параметры поиска моего класса продукта, как указано выше
- создать новый индекс с
Product.reindex(async: true)
- продвиньте новый индекс, как только мое приложение будет развернуто с помощью
Product.search_index.promote(index_name)
.
К сожалению, при этом searchkick не дает мне изменить параметры и поднимает:
RuntimeError (вызов searchkick только один раз для каждой модели)
Есть идеи?
Traceback (most recent call last):
10: from bin/rails:9:in `<main>'
9: from bin/rails:9:in `require'
8: from /app/vendor/bundle/ruby/2.5.0/gems/railties-4.2.11/lib/rails/commands.rb:17:in `<top (required)>'
7: from /app/vendor/bundle/ruby/2.5.0/gems/railties-4.2.11/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
6: from /app/vendor/bundle/ruby/2.5.0/gems/railties-4.2.11/lib/rails/commands/commands_tasks.rb:68:in `console'
5: from /app/vendor/bundle/ruby/2.5.0/gems/railties-4.2.11/lib/rails/commands/console.rb:9:in `start'
4: from /app/vendor/bundle/ruby/2.5.0/gems/railties-4.2.11/lib/rails/commands/console.rb:110:in `start'
3: from (irb):1
2: from (irb):8:in `<class:Product>'
1: from /app/vendor/bundle/ruby/2.5.0/gems/searchkick-2.5.0/lib/searchkick/model.rb:11:in `searchkick'