From: David M. <ma...@ha...> - 2013-06-23 09:10:01
|
At Thu, 20 Jun 2013 13:48:54 +0000, Demian Katz wrote: > > > A did a quick look and the tricky part seems to be distributing the > > shard settings (available/selected) to the VuFind\Related\Similar > > component. They are currently processed in the Results object (in: > > createBackendParameters()). > > As a simplistic starting point, would it make sense to > constructor-inject the Options object into VuFind\Related\Similar > and then search for similar items across all shards? There are no > "selected shards" at the record view level since there is no active > search at that point. If we wanted to be more sophisticated, we > could try remembering the most recent set of selected shards in the > session... but that might be overkill. I think constructor injecting Options is not desirable because of the dependency it creates. What is the challenge? It is not about SOLR sharing in general. Using VuFind 2.x in a sharded environment can simply be done by setting the respective shards parameter in the SOLR Connector HandlerMap (=a parameter that is sent with each and every request). Let's call these parameters /fixed search parameters/. It is about Dynamic Shards™ -- We have configured shards (all available shards) -and- effective shards (a subset of the former). ShardProvider :: Provides the effective value of the SOLR shards parameter The ShardProvider is a subclass of a more general class, a ParameterProvider :: Provides effective search parameters The shard setup is orthogonal to the retrieval operation. Thus ideally the Related\Similar component would simply request someone for the effective search configuration (eq the ParamBag) it has to pass to the search service -or- Someone would have to provide the effective search parameters without the knowledge of Related\Similar. The lattern can be done by utilizing the event system by hooking into the global dispatch event (read selected shards) and the search system's pre event (inject shards parameter into parameter bag). @Oli: Solving this issue using the event manager seems like a good example for my workshop at the user's meeting in september as it touches the important parts of SOLR integration with the new search system. What do you think? I can envision a hands-on workshop that starts with the problem analysis and ends with an implementation. Best, -- David > > - Demian -- David Maus Herzog August Bibliothek - D-38299 Wolfenbuettel Phone: +49-5331-808-317 Email: ma...@ha... Digital Humanities Research Collaboration http://www.gcdh.de/en/projects/dh/ PGP Key 0x0CC2E093512F7385 Fingerprint 1AD2 EE67 224F 18C5 EA55 98AD 0CC2 E093 512F 7385 |