diff --git a/enterprise/app/jobs/portal/article_indexing_job.rb b/enterprise/app/jobs/portal/article_indexing_job.rb new file mode 100644 index 000000000..6d5eb9a75 --- /dev/null +++ b/enterprise/app/jobs/portal/article_indexing_job.rb @@ -0,0 +1,7 @@ +class Portal::ArticleIndexingJob < ApplicationJob + queue_as :low + + def perform(article) + article.generate_and_save_article_seach_terms + end +end diff --git a/enterprise/app/models/enterprise/concerns/article.rb b/enterprise/app/models/enterprise/concerns/article.rb index aa67ee7a5..e230a3a28 100644 --- a/enterprise/app/models/enterprise/concerns/article.rb +++ b/enterprise/app/models/enterprise/concerns/article.rb @@ -39,6 +39,10 @@ module Enterprise::Concerns::Article def add_article_embedding return unless account.feature_enabled?('help_center_embedding_search') + Portal::ArticleIndexingJob.perform_later(self) + end + + def generate_and_save_article_seach_terms terms = generate_article_search_terms article_embeddings.destroy_all terms.each { |term| article_embeddings.create!(term: term) }