Replies: 3 comments 7 replies
-
The truth is that, for me, one of the big selling points for Muscat is that it has Blacklight as end user search interface. And as Blacklight has become a de facto standard in (mostly American) academic library catalogs and digital repositories, I've been using this fact to point that Muscat is quite mainstream, and we are just jumping in. I think I need more information about your plans to understand its consequences. |
Beta Was this translation helpful? Give feedback.
-
Phasing out those two complete Muscat installations, which we have just so that we could have different public-facing catalogue, is one of the main driving forces behind the move to decouple Blacklight from Muscat. Every night we need to download 6GB SQL dumps, import them into two different MySQL servers, and then index them in two different Solr cores, just so we can drive two different Blacklight installations. This is inefficient and error-prone. Muscat is not designed for “multi-tenant” site delivery. It is better to use a single Muscat MySQL server, and hook up the public-facing views through dedicated Solr cores for each catalogue. We plan on expanding country-specific search significantly — our users really want the ability to search in any country’s catalogue. Maintaining over 50 separate installations to support this is just not possible. There really isn’t much magic happening with Blacklight. It is just a friendly UI for Solr. It takes what it finds in the Catalogue controller and looks for those fields in a Solr response. I have previously set up indexing pipelines that take TEI XML, create Solr docs through an XSLT, pass them to Solr, and then have the catalogue controller configured to expect the fields that were indexed. Blacklight is then quite happy to serve and facet as needed. We will be open sourcing our new catalogue replacement, once it is out of the initial development phase. It is structured quite differently from Blacklight, though. It is built on a micro service architecture and consists of three main components: an indexing service that is responsible for moving the data from MySQL and MARC to Solr, an API server that delivers a public API serving JSON-LD from Solr, and a JavaScript UI that renders the JSON-LD data client-side. The interface with Muscat is very small. The indexing service is the only part that “knows” anything about MARC or Muscat. If Muscat went offline, or we did some major work that necessitated complex database or record changes that took a long time to do, the indexer is the only layer that would need to change — the rest of the public-facing service would continue working independent of Muscat. We might not be able to index new data, but we could run the service indefinitely for the public while we made the changes. The indexer service is built with Python, but that doesn’t really matter much. It could be built with any language that reads from MySQL and outputs to Solr. Our current performance is that it can index 5 million Solr documents in under half an hour (but this may change as we index more complex data). The “shape” of the data in Solr is much more friendly to search, rather than simply mimicking MySQL records in Solr — we can tailor the data in the Solr records to meet specific user requirements. One example is that we are using some NLP to parse date ranges from our messy data — we get it out of MySQL, do some NLP analysis, and then store it as a numeric date range field in Solr. You mentioned using Traject in #1110 — I don’t see why this same process wouldn’t be possible for you: Take your data from Muscat, run it through traject based indexes, and send it to a Solr core. Then just tell any Blacklight installation about the fields and the shape of the data in the core, and it should then provide you with a UI for it. If you want to run two installations, configure a traject indexer to deliver different data to Solr. We have already made it possible to decouple Solr from Muscat. We can run the latest Solr server for our own data and bypass the built-in service. @xhero can confirm, but I think that eventually we would like to move away from a hard dependency on Solr as well. This would vastly simplify the Muscat installation, but right now there are still lookup fields in the catalogue interface that depend on Solr values, so the timeline on that is still open. |
Beta Was this translation helpful? Give feedback.
-
During the last weeks I have created a draft Rails application that uses the Blacklight engine and indexes the records for my sites, so now I understand it better, how it behaves and its possibilities. It also allows collection navigation like Invenio classic. Although it is not finished and the functionality is very basic, this experience has helped me to conclude that, in this case, having two different systems has more advantages than disadvantages So yes, please, for me go for it. |
Beta Was this translation helpful? Give feedback.
-
Currently Muscat includes a controller for Blacklight to have an in-app OPAC. While Blacklight served us very well in the past it has several drawbacks:
It was then decided that in the future we will move away from Blacklight for our search interface, and in turn develop our own, Muscat+, which is tailored specifically to the data we have in Muscat. The reasons for this are various, but not the least we need a tailored indexer and search interface for the very peculiar data that we have in Muscat.
So I'm opening up this discussion because it can be a good moment to discuss about the future of Blacklight. Since other projects are using Muscat for non musical data or specific installations, we are working on the idea to scorporate Blacklight from the main Muscat application and possibly have it as a separate module that installations can use an customise. This would have the advantage that changes in the Blacklight installation will not modify the cataloguing interface, and also that BL can run on its own indexer separate from the one used in the cataloguing part of the application.
The module or separate installation could be made so some parts are still shared with Muscat - such as the Marc rendering views if needed.
Beta Was this translation helpful? Give feedback.
All reactions