|
| 1 | +desc "configure indices and upload data" |
| 2 | +task "elasticsearch:initialize" => :environment do |
| 3 | + Rake::Task["elasticsearch:configure"].invoke |
| 4 | + Rake::Task["elasticsearch:reindex"].invoke |
| 5 | +end |
| 6 | + |
| 7 | +desc "configure elasticsearch index settings" |
| 8 | +task "elasticsearch:configure" => :environment do |
| 9 | + elasticsearch_configure_users |
| 10 | + #elasticsearch_configure_posts |
| 11 | + #elasticsearch_configure_tags |
| 12 | +end |
| 13 | + |
| 14 | +desc "reindex everything to elasticsearch" |
| 15 | +task "elasticsearch:reindex" => :environment do |
| 16 | + elasticsearch_reindex_users |
| 17 | + # elasticsearch_reindex_posts |
| 18 | + # elasticsearch_reindex_tags |
| 19 | +end |
| 20 | + |
| 21 | + |
| 22 | +def elasticsearch_configure_users |
| 23 | + puts "[Starting] Pushing users index settings to Elasticsearch" |
| 24 | + # DiscourseElasticsearch::ElasticsearchHelper.elasticsearch_index( |
| 25 | + # DiscourseElasticsearch::ElasticsearchHelper::USERS_INDEX).set_settings( |
| 26 | + # "searchableAttributes" => ["unordered(username)", "unordered(name)"], |
| 27 | + # "attributesToHighlight" => [:username, :name], |
| 28 | + # "attributesToRetrieve" => [:username, :name, :url, :avatar_template, :likes_received, :days_visited], |
| 29 | + # "customRanking" => ["desc(likes_received)", "desc(days_visited)"], |
| 30 | + # "removeWordsIfNoResults" => "allOptional" |
| 31 | + # ) |
| 32 | + puts "[Finished] Successfully configured users index in Elasticsearch" |
| 33 | +end |
| 34 | + |
| 35 | +def elasticsearch_reindex_users |
| 36 | + |
| 37 | + puts "[Starting] Pushing users to Elasticsearch" |
| 38 | + user_records = [] |
| 39 | + User.all.each do |user| |
| 40 | + #user_records << DiscourseElasticsearch::ElasticsearchHelper.to_user_record(user) |
| 41 | + user_record = DiscourseElasticsearch::ElasticsearchHelper.to_user_record(user) |
| 42 | + puts user_record |
| 43 | + end |
| 44 | + # puts "[Progress] Gathered users from Discourse" |
| 45 | + # DiscourseElasticsearch::ElasticsearchHelper.elasticsearch_index( |
| 46 | + # DiscourseElasticsearch::ElasticsearchHelper::USERS_INDEX).add_objects(user_records) |
| 47 | + # puts "[Finished] Successfully pushed #{user_records.length} users to Algolia" |
| 48 | +end |
0 commit comments