discourse/lib/tasks/search.rake
Sam 86d12bd44b FEATURE: search within title using in:title
Also

- Significantly improved search ranking, title is treated most strongly
- Adds tag names to the index
- Run search re-indexer more aggressively
- Re-index topic and all posts on category change
2018-02-20 14:41:21 +11:00

49 lines
911 B
Ruby

task "search:reindex" => :environment do
ENV['RAILS_DB'] ? reindex_search : reindex_search_all_sites
end
def reindex_search(db = RailsMultisite::ConnectionManagement.current_db)
puts "Reindexing '#{db}'"
puts ""
puts "Posts"
Post.includes(topic: [:category, :tags]).find_each do |p|
if p.post_number == 1
SearchIndexer.index(p.topic, force: true)
else
SearchIndexer.index(p, force: true)
end
putc "."
end
puts
puts "Users"
User.find_each do |u|
SearchIndexer.index(u, force: true)
putc "."
end
puts
puts "Categories"
Category.find_each do |c|
SearchIndexer.index(c, force: true)
putc "."
end
puts
puts "Tags"
Tag.find_each do |t|
SearchIndexer.index(t, force: true)
putc "."
end
puts
end
def reindex_search_all_sites
RailsMultisite::ConnectionManagement.each_connection do |db|
reindex_search(db)
end
end