Overview of the extension configuration

The extension configuration contains all information needed to configure extension plugins that can be used for metadata binding and search query enhancement.

Introduction

The configuration is stored inside the Content Manager database and is accessible via the Content Manager web client using Settings > XML Extension Settings.

Extension plugins

An extension defines:
  • The interface methods that the extension plugin needs to provide in order to intervene in the application.
  • The place in the application were the extension plugin can intervene in the application.
Content Manager defines 2 types of extensions:
  • A metadata binding extension plugin is called when the user adds, updates or views metadata fields. This kind of plugin needs to implement the metadata binding SDK interface (IHandler).
  • A search extension plugin is called when the user performs a search. This kind of plugin needs to implement the search extension SDK interface (IQueryEnhanceHandler).

Metadata binding

A metadata binding extension plugin is typically used to retrieve data coming from an external system and store it on a metadata field in the Content Manager database. When a field is configured to use a metadata binding plugin to access data, the field is said to be metadata bound. To avoid duplication of data, only the ids is stored in the Content Manager database. If the external system contains an hierarchical tree structure (taxonomy), the metadata binding interface provides a method that can return the tree structure in order to help the user navigate to select a value for the field.

When a user views the metadata of the object, the plugin is called to retrieve the labels for the ids stored in the metadata field.

When a user adds or changes metadata field values, the user interface in the web client and client tools will help the user to select the value(s) he wants by providing:
  • An auto suggest list were he can select some of the values that match the characters he typed in.
  • A hierarchical tree structure were he can navigate and select some values.

The system will call the extension plugin to check whether the ids are allowed for the field and will store the ids for the field in the database.

Search query enhance

A search enhance extension plugin is used to "enhance" (improve) a users search query in order to get more relevant search results.

The search extension allows to intervene before a users search query is actually executed on the server. It allows to "enhance" the search query by adding extra search terms (potentially using information coming from an external system) or to rewrite the query completely. As this all happens on the server, the user is unaware of this, although it should provide him with more relevant search results.

Extension configuration

The extension configuration mainly consists of 3 parts:
  • The "metadatabindings" section can contain multiple "metadatabinding" elements. A "metadatabinding" element defines the field and the source where to retrieve the data.
  • The "search" section can contain multiple "queryenhance" elements. A "queryenhance" element contains the source to use to enhance the search query.
  • The "sources" section can contain multiple "source" elements. A "source" element typically has a unique id, a handler with the name of the extension plugin to call, and the necessary initialization parameters to provide to the plugin in order to do it's job (for example a URL parameter with the http location of the external system). Multiple "source" elements can use the same handler (plugin name) but must have a unique id and different initialization parameters.
A source can be reused by different extensions. For example, a metadatabinding and a search query enhance extension can reference the same source to integrate with the external system, encapsulating the complex logic and configuration for this integration in one reusable source.