|Plugins intended for use in the SXC or Funnelback SaaS v16 require a review before they can be used and this is currently only available to internal Squiz developers.|
The plugin framework provides developers with a suite of options for extending or modifying functionality provided by Funnelback.
Plugins are developed using the Java programming language and package up the extended functionality into an extension that can be enabled by a search implementer from the administration dashboard.
Plugins are subject to review by the Funnelback product team prior to being installed onto the Funnelback server. See the publishing section for information on how to submit your plugin for review.
On average the product team will provide a decision on your plugin within two business days of receiving the request.
- Setting up your development environment
Install pre-requisites and configure your IDE.
- Generate a plugin project
Learn about the tool used to create a new plugin project.
- Tutorial: Developing your first plugin
Follow a step-by-step tutorial that covers implementation of a very simple plugin. The tutorial covers the complete process, including setup of your development environment.
- Plugins - Groovy and equivalent Java code examples
For existing Funnelback developers that are familiar with writing Groovy filters and hook scripts.
Plugins provide various interfaces which, when implemented, extend Funnelback in a number of ways.
|A plugin must implement at least one of these interfaces and may require the implementation of multiple interfaces to deliver the required functionality.|
The interfaces enable the implementation of:
Query-time modifications to the question and response data model as part of the search lifecycle, or as servlet filters that access and modify the request and response servlets.
A custom gatherer for use with a custom data source to enable the gathering of content from arbitrary data sources.
Filters that analyze and manipulate document content prior to indexing.
Faceted navigation custom sort comparator that implements a custom sorting algorithm for faceted navigation categories.
The plugin framework also provides a number of supporting interfaces that usually support the above use cases but can also be used standalone. These interfaces enable:
Indexing configuration that will be set for a data source, primarily to support the plugin’s custom functionality. This includes configuration of metadata mappings, external metadata, gscopes, kill lists and auto-completion CSV.
Providing configuration options for a plugin via configuration keys and configuration files that are specific to the plugin.
Each plugin interface provides corresponding test classes which must implement unit tests for the plugin functionality.
|Unit tests must be supplied for plugins to ensure that automated upgrades to the SXC environment can be performed safely without breaking any plugin functionality.|