$LOAD_PATH << './lib' require 'rubygems' namespace :searchindex do task :drop, [:opts] => :environment do |_t, _args| # drop indexes puts 'drop indexes...' SearchIndexBackend.index( action: 'delete', ) end task :create, [:opts] => :environment do |_t, _args| # create indexes puts 'create indexes...' SearchIndexBackend.index( action: 'create', data: { mappings: { Ticket: { _source: { excludes: [ 'articles.attachments' ] }, properties: { articles: { type: 'nested', properties: { attachments: { type: 'attachment', } } } } } } } ) end task :reload, [:opts] => :environment do |_t, _args| puts 'reload data...' Models.searchable.each {|model_class| puts " reload #{model_class}" model_class.search_index_reload } end task :rebuild, [:opts] => :environment do |_t, _args| Rake::Task['searchindex:drop'].execute Rake::Task['searchindex:create'].execute Rake::Task['searchindex:reload'].execute end end