Sha256: 3857006513c8db2e4a301da84c9dfd1f13ebd95fe218324de117d47022ffa3f3

Contents?: true

Size: 864 Bytes

Versions: 34

Compression:

Stored size: 864 Bytes

Contents

module Workarea
  class ProcessSearchRecommendations
    include Sidekiq::Worker

    def perform(*)
      predictor.clean!

      start = Workarea.config.recommendation_expiration.ago

      Recommendation::UserActivity
        .where(:updated_at.gte => start)
        .desc(:updated_at) # sort by updated_at to ensure use of that index
        .each_by(page_size) { |activity| add(activity) }

      predictor.process!
    end

    def predictor
      @predictor ||= Recommendation::SearchPredictor.new
    end

    def add(activity)
      searches = activity
                  .searches
                  .map { |s| QueryString.new(s).id }
                  .reject(&:blank?)

      predictor.sessions.add_set(activity.id.to_s, searches) if searches.many?
    end

    def page_size
      Workarea.config.search_recommendation_index_page_size
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.44 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.43 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.42 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.41 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.40 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.39 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.38 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.37 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.36 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.35 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.34 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.33 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.32 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.31 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.30 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.29 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.28 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.27 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.26 app/workers/workarea/process_search_recommendations.rb