search_index_es.rake 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. $LOAD_PATH << './lib'
  3. require 'rubygems'
  4. namespace :searchindex do
  5. task :drop, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  6. print 'drop indexes...'
  7. # drop indexes
  8. SearchIndexBackend.drop_index
  9. puts 'done'
  10. Rake::Task['searchindex:drop_pipeline'].execute
  11. end
  12. task :create, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  13. print 'create indexes...'
  14. SearchIndexBackend.create_index
  15. puts 'done'
  16. Rake::Task['searchindex:create_pipeline'].execute
  17. end
  18. task :create_pipeline, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  19. print 'create pipeline (pipeline)... '
  20. SearchIndexBackend.create_pipeline
  21. puts 'done'
  22. end
  23. task :drop_pipeline, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  24. print 'delete pipeline (pipeline)... '
  25. SearchIndexBackend.drop_pipeline
  26. puts 'done'
  27. end
  28. task :reload, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  29. puts 'reload data...'
  30. Models.indexable.each do |model_class|
  31. puts " reload #{model_class}"
  32. started_at = Time.zone.now
  33. puts " - started at #{started_at}"
  34. model_class.search_index_reload
  35. took = Time.zone.now - started_at
  36. puts " - took #{took.to_i} seconds"
  37. end
  38. end
  39. task :refresh, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  40. print 'refresh all indexes...'
  41. SearchIndexBackend.refresh
  42. end
  43. task :rebuild, [:opts] => %i[environment searchindex:configured searchindex:version_supported] do |_t, _args|
  44. Rake::Task['searchindex:drop'].execute
  45. Rake::Task['searchindex:create'].execute
  46. Rake::Task['searchindex:reload'].execute
  47. end
  48. task :version_supported, [:opts] => :environment do |_t, _args|
  49. next if SearchIndexBackend.version_supported?
  50. abort "Your Elasticsearch version is not supported! Please update your version to a greater equal than 6.5.0 (Your current version: #{SearchIndexBackend.version})."
  51. end
  52. task :configured, [:opts] => :environment do |_t, _args|
  53. next if SearchIndexBackend.configured?
  54. abort "You have not configured Elasticsearch (Setting.get('es_url'))."
  55. end
  56. end