Class: Deepsearch::Engine::Steps::ParallelSearch::Search
- Inherits:
-
Object
- Object
- Deepsearch::Engine::Steps::ParallelSearch::Search
- Defined in:
- lib/deepsearch/engine/steps/parallel_search/search.rb
Overview
Performs concurrent web searches for a list of queries using a given search adapter. It manages concurrency, retries with exponential backoff for failed searches, and aggregates the unique results.
Constant Summary collapse
- MAX_CONCURRENCY =
2- MAX_RETRIES =
1- INITIAL_BACKOFF =
1
Instance Method Summary collapse
-
#initialize(initial_query, sub_queries, search_adapter, **options) ⇒ Search
constructor
A new instance of Search.
- #output ⇒ Object
Constructor Details
#initialize(initial_query, sub_queries, search_adapter, **options) ⇒ Search
Returns a new instance of Search.
18 19 20 21 22 23 24 |
# File 'lib/deepsearch/engine/steps/parallel_search/search.rb', line 18 def initialize(initial_query, sub_queries, search_adapter, **) @all_queries = [initial_query] + sub_queries @search_adapter = search_adapter @max_total_search_results = [:max_total_search_results] @search_options = @logger = Deepsearch.configuration.logger end |
Instance Method Details
#output ⇒ Object
26 27 28 29 30 31 |
# File 'lib/deepsearch/engine/steps/parallel_search/search.rb', line 26 def output return [] if @all_queries.empty? results = perform_all_searches results.flatten.uniq { |result| result['url'] } end |