About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:architecture:search_service

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
vufind2:search_service [2013/04/29 16:12] – add note on parameter bag dmausdevelopment:architecture:search_service [2020/03/04 13:45] demiankatz
Line 7: Line 7:
   * separate re-usable classes for interacting with a specific remote system and the application-specifc implementation   * separate re-usable classes for interacting with a specific remote system and the application-specifc implementation
   * streamline the interface of backend related classes   * streamline the interface of backend related classes
-  * use the Zend Framework'capabilities to provide extend and/or augment the VuFind implementation+  * use [[development:architecture:laminas|Laminas]]' capabilities to provideextend and/or augment the VuFind implementation
  
 FIXME FIXME
Line 57: Line 57:
 The search service integrates all backends used by the VuFind application. Instead of using the backend classes directly, all retrieval operations use the search service class and select the backend by passing its identifier as first argument. This indirection is necessary in order to implement a well defined behavior of retrieval operations required to extend and/or modify the application without modifying the core classes or hardcoding application specific behavior. The search service integrates all backends used by the VuFind application. Instead of using the backend classes directly, all retrieval operations use the search service class and select the backend by passing its identifier as first argument. This indirection is necessary in order to implement a well defined behavior of retrieval operations required to extend and/or modify the application without modifying the core classes or hardcoding application specific behavior.
  
-:!: It is worth noting that every retrieval operation can be called with a 'parameter bag' that holds backend specific operation parameters. The certainly puts limitations on the integration part but allows for a create deal of flexibility with regards to backend features :!:+:!: It is worth noting that every retrieval operation can be called with a 'parameter bag' that holds backend specific operation parameters. This certainly puts limitations on the integration partbut allows for a great deal of flexibility with regards to backend features :!:
  
-The search service uses a scoped service manager bound to the namespace ''VuFind\Search'' to emit the following events:+The search service uses a scoped service manager bound to the namespace ''VuFind\Search'' and emits the following events:
  
 ==== resolve ==== ==== resolve ====
Line 73: Line 73:
 The target of the ''post'' event is the return value of the requested operation. The target of the ''post'' event is the return value of the requested operation.
  
 +==== error ====
  
 +If a backend implementation raised an exception this event is triggered with the exception object as target. Listeners can be attached to e.g. annotate the exception or log specific errors of a third party index provider.
  
  
 +===== Additional Resources =====
 +
 +This [[https://www.youtube.com/watch?v=8InrSNbt1Sk|Video Presentation from the 2013 VuFind Summit]] features some detailed discussion of the search service. Slides are available [[http://vufind.org/docs/summit2013/search.ppt|here]].
 ---- struct data ---- ---- struct data ----
 ---- ----
  
development/architecture/search_service.txt · Last modified: 2023/11/09 21:12 by demiankatz