Class: Deepsearch::Engine::Steps::ParallelSearch::Process
- Inherits:
-
Object
- Object
- Deepsearch::Engine::Steps::ParallelSearch::Process
- Defined in:
- lib/deepsearch/engine/steps/parallel_search/process.rb
Overview
Orchestrates the parallel execution of multiple search queries (initial query + sub-queries). It uses the ‘Search` class to perform the actual concurrent searches via a search adapter and wraps the outcome in a `Result` object.
Instance Attribute Summary collapse
-
#initial_query ⇒ Object
readonly
Returns the value of attribute initial_query.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#search_adapter ⇒ Object
readonly
Returns the value of attribute search_adapter.
-
#sub_queries ⇒ Object
readonly
Returns the value of attribute sub_queries.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(initial_query:, sub_queries:, search_adapter:, **options) ⇒ Process
constructor
A new instance of Process.
Constructor Details
#initialize(initial_query:, sub_queries:, search_adapter:, **options) ⇒ Process
Returns a new instance of Process.
16 17 18 19 20 21 22 23 24 |
# File 'lib/deepsearch/engine/steps/parallel_search/process.rb', line 16 def initialize(initial_query:, sub_queries:, search_adapter:, **) @initial_query = initial_query @sub_queries = sub_queries @search_adapter = search_adapter = end |
Instance Attribute Details
#initial_query ⇒ Object (readonly)
Returns the value of attribute initial_query.
14 15 16 |
# File 'lib/deepsearch/engine/steps/parallel_search/process.rb', line 14 def initial_query @initial_query end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
14 15 16 |
# File 'lib/deepsearch/engine/steps/parallel_search/process.rb', line 14 def end |
#search_adapter ⇒ Object (readonly)
Returns the value of attribute search_adapter.
14 15 16 |
# File 'lib/deepsearch/engine/steps/parallel_search/process.rb', line 14 def search_adapter @search_adapter end |
#sub_queries ⇒ Object (readonly)
Returns the value of attribute sub_queries.
14 15 16 |
# File 'lib/deepsearch/engine/steps/parallel_search/process.rb', line 14 def sub_queries @sub_queries end |
Instance Method Details
#execute ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/deepsearch/engine/steps/parallel_search/process.rb', line 26 def execute websites = Search.new(initial_query, sub_queries, search_adapter, **).output Deepsearch.configuration.logger.debug("Parallel search completed with #{websites.size} results") ParallelSearch::Result.new( websites: websites ) rescue StandardError => e ParallelSearch::Result.new( websites: [], error: e. ) end |