From bbcd1ed3da2e7aaf12b7d63220dd5c5cc4177104 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Mon, 1 May 2023 17:49:09 -0400 Subject: [PATCH] Limit ApiSearchQuery results to index minimum score (#19407) --- app/queries/articles/api_search_query.rb | 5 ++++- spec/queries/articles/api_search_query_spec.rb | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/queries/articles/api_search_query.rb b/app/queries/articles/api_search_query.rb index 9d3390c70..92b0f41b2 100644 --- a/app/queries/articles/api_search_query.rb +++ b/app/queries/articles/api_search_query.rb @@ -44,7 +44,10 @@ module Articles end def published_articles_with_users_and_organizations - Article.published.includes([{ user: :profile }, :organization]).order(hotness_score: :desc) + Article.published + .includes([{ user: :profile }, :organization]) + .where("score >= ?", Settings::UserExperience.index_minimum_score) + .order(hotness_score: :desc) end end end diff --git a/spec/queries/articles/api_search_query_spec.rb b/spec/queries/articles/api_search_query_spec.rb index 118bbc79c..69e48d9ff 100644 --- a/spec/queries/articles/api_search_query_spec.rb +++ b/spec/queries/articles/api_search_query_spec.rb @@ -22,6 +22,13 @@ RSpec.describe Articles::ApiSearchQuery, type: :query do articles = described_class.call({ q: "ruby" }) expect(articles.count).to eq(1) end + + it "does not show article if below minimum index" do + Settings::UserExperience.index_minimum_score = 10_000 + articles = described_class.call({ q: "ruby" }) + expect(articles.count).to eq(0) + Settings::UserExperience.index_minimum_score = 0 + end end context "when there is a top parameter" do