rake environment elastic search: import: all FORCE = y продолжает терпеть неудачу

Я запускаю поисковый и эластичный поиск, и я все время пытаюсь воссоздать свой индекс, потому что мое приложение rails дает сбой, но это тоже не удается. Я новичок в этом, поэтому чувствую себя совершенно потерянным.

Я бегу rake environment elasticsearch:import:all FORCE=y

Но ошибка

Starting up a new ElasticSearch client with 
[IMPORT] Loading models from: /home/ubuntu/workspace/sample_app/app/models
2016-03-11 16:32:07 +0000: [Faraday::ConnectionFailed] Connection refused - connect(2) for "localhost" port 9200 {:host=>"localhost", :port=>9200, :protocol=>"http"}
rake aborted!
ArgumentError: users does not exist to be imported into. Use create_index! or the :force option to create it.
/usr/local/rvm/gems/ruby-2.2.1/gems/elasticsearch-model-0.1.8/lib/elasticsearch/model/importing.rb:118:in `import'
/usr/local/rvm/gems/ruby-2.2.1/gems/elasticsearch-model-0.1.8/lib/elasticsearch/model.rb:115:in `import'
/home/ubuntu/workspace/sample_app/app/models/user.rb:109:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:457:in `load'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:457:in `block in load_file'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:647:in `new_constants_in'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:456:in `load_file'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:354:in `require_or_load'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:494:in `load_missing_constant'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:184:in `const_missing'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/inflector/methods.rb:261:in `const_get'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/inflector/methods.rb:261:in `block in constantize'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/inflector/methods.rb:259:in `each'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/inflector/methods.rb:259:in `inject'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/inflector/methods.rb:259:in `constantize'
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/core_ext/string/inflections.rb:66:in `constantize'
/usr/local/rvm/gems/ruby-2.2.1/gems/elasticsearch-rails-0.1.8/lib/elasticsearch/rails/tasks/import.rb:93:in `block (4 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.2.1/gems/elasticsearch-rails-0.1.8/lib/elasticsearch/rails/tasks/import.rb:87:in `each'
/usr/local/rvm/gems/ruby-2.2.1/gems/elasticsearch-rails-0.1.8/lib/elasticsearch/rails/tasks/import.rb:87:in `block (3 levels) in <top (required)>'
Tasks: TOP => elasticsearch:import:all
(See full trace by running task with --trace)

person rs19    schedule 11.03.2016    source источник
comment
Возможный дубликат Rails 5: Как импортировать данные в Elastic Search и выполнять условный поиск?   -  person MatayoshiMariano    schedule 05.08.2017


Ответы (2)


Сегодня утром у нас была такая же проблема.

В документации elastic-search-model указано, как настроить ваши модели такие:

class User < ActiveRecord::Base
  include Elasticsearch::Model
  include Elasticsearch::Model::Callbacks

  #The rest of your mode...
end

User.import

Но перед импортом существующих данных вам нужно удалить User.import, затем запустить rake environment elasticsearch:import:all FORCE=y, и все пройдет гладко.

Не забудьте добавить User.import после выполнения задачи rake, чтобы ваши новые пользователи были импортированы правильно.

Удачного кодирования!

person Walter Reyes    schedule 28.02.2017
comment
Я получил это Не знаю, как создать задачу «elasticsearch: import: all» (см. --tasks) :( - person cahyowhy; 05.08.2017
comment
Что вы имеете в виду, чтобы построить задачу? Задача рейка будет доступна при установке гема. - person Walter Reyes; 06.08.2017
comment
Документация до сих пор не обновлена ​​- здесь важно убрать User.import. - person Michael Schmitz; 09.11.2017
comment
@cahyowhy Из github.com/elastic/elasticsearch-rails / tree / master /, ... в файле lib / tasks / elasticsearch.rake: require 'elasticsearch/rails/tasks/import' - person Wit; 28.07.2019

попробуйте YourModelName.import(force: true) в консоли rails.

person Loyea    schedule 08.01.2018