MasterKey is our enterprise discovery solution. It is a set of software tools, based on a service-oriented architecture, which can be used to meet a broad range of search requirements. With its open architecture, MasterKey is designed for maximum flexibility at every level: elements can be freely combined and integrated into any setting.

See a sample user interface based on MasterKey.

In addition to our popular open source toolkits, MasterKey features exclusive elements such as a versatile administration console and a management framework based on REST principles, as well as our MasterKey Connect service.

MasterKey Enterprise


The heart and muscle of MasterKey, Pazpar2 is a high-performance, user interface-independent, data model-independent metasearching middleware featuring merging, relevance ranking, record sorting, and faceted results. It will efficiently search hundreds of targets in parallel and create an internal, merged result set on the fly. When used in conjunction with the MasterKey platform, it is dynamically configured by the Service Proxy, so that multiple user communities with different target configurations can use it concurrently. When used in conjunction with a local index, Pazpar2 combines all the best qualities of central index metasearching (‘instant’ results, excellent ranking, deep searching and facets), with top-of-the line broadcast metasearching (easy addition of any remote resource, through standard protocols, proprietary APIs, or screen-scraping; dynamically updated result display). Pazpar2 is also our most powerful open source software.

MasterKey Connect

This is a technology for providing access to remote systems that do not offer standard APIs or protocols. Specifically, it can automate the kinds of interactions that end users might have with a web-based interface, and generate structured output from presentation-formatted displays. Applications of the technology include metasearching, semi-automated data ingest or harvesting, or any other type of application that requires machine access to an interface designed for humans. In a metasearch application, it is used to provide access to search targets that do not support standards-based interfaces, including both proprietary APIs and HTML-scraping.

Service Proxy

This is a service that sits in front of Pazpar2 and augments the Pazpar2 webservice API. It is designed to be a general-purpose service platform into which we can add modules to support an increasing array of higher-order functions while keeping the core Pazpar2 code lean. It provides dynamic target configuration based on user identity (using the Torus), and it emulates a form of session persistence that simplifies client code by obviating the need for tracking session IDs in the user interface logic. The proxy will restart sessions if necessary. In addition to the core functionality, we are looking at adding features such as tagging and reviews of records, broadcast searching based on OpenURLs, circulation status lookup, etc. If you have already developed an application using Pazpar2, you can ‘upgrade’ it by adding the Service Proxy and other MasterKey components.


The Harvester is a general-purpose scheduler for ingesting remote data sources. It is designed to support multiple job types or protocols. At present it supports OAI-PMH, MARC, and XML bulk download, and simple harvesting of WWW jump-pages (e.g. A-Z lists). The Harvester has a native WWW interface, but it can be fully managed and controlled using a RESTful webservice, to enable it to fit into a local administration framework. It uses the powerful and scalable Apache Solr engine for indexing content.


The Torus is both a software component and architecture for maintaining complex knowledge bases in a distributed, cross-institutional fashion. Its primary use is to manage lists of search targets, either as global resources that are made available to customers, or as smaller lists that represents the selection of an individual customer. The architecture is hierarchical, so customers can themselves make target lists available to their own customers (e.g., in consortial models), down to the individual user level if required.


This is an administrative shell designed to work with the Torus. It is both a practical example of an interface to the Torus platform, and a useful tool in its own right. It allows for the management of global search targets, local ‘library’ accounts with their own subsets of targets, as well as access control for local administrators to the admin interface.

User Interface Framework

This is a simple JavaScript-based framework for developing interfaces for Pazpar2. Use of it is not mandatory – there are numerous ways to program interfaces against the MasterKey platform. The framework instantiates each of the main components in a typical interface (result list, facets, record view, etc.) as a ‘widget’ that can be placed anywhere on a page and configured with respect to how things are presented (like records, lines in facet views, etc.)