Funnelback extensions and plugins

Funnelback extensions provide custom functionality that have been vetted and reviewed to be shared and reused between different search packages, data sources and results pages.

Custom functionality is implemented as one or more plugins which a Funnelback administrator can install onto Funnelback. Plugins are a way for the community to contribute common solutions to re-occurring problems, or for highly unique solutions to be implemented for a particular problem.

Types of plugins

Plugins allow you to package up functionality that includes:

  • logic that will run at the same time as executing a search package’s hook scripts

  • filters that can be added to a data sources’s filter chain

  • custom gatherers

Some plugins will combine a few of these together.

Available plugins

The following plugins are available for use:

Plugin Description

Adds metadata to URL patterns at filter time. Provides similar functionality to external metadata, but with a lot more flexibility in the URL pattern matching.

Generates auto-completion based on metadata within the search index.

Removes segments of a title that match user defined regular expressions supplied via configuration. The plugin can run at index or query time.

Combines several metadata fields into a new metadata field, or clones an existing metadata field.

Provides support for empty queries, and the ability to define the default query that runs when an empty query is submitted.

Adds a link that enables a user to access the full set of extra search results for an extra search that is displayed in conjunction with faceted navigation.

Sorts the categories of a specified facet using a user-defined sort order.

Changes the labels of facet categories.

Restores some deprecated data model parameters to support legacy integrations.

Download an external metadata configuration file from a publicly accessible URL at index time.

Provides support for grouping search results by data source or metadata field value.

Used to enable the higher education stencil.

Modifies the live URL of search results, preserving the click tracking URL.

Provides advanced customization of search results pagination elements.

Provides limited wildcard (truncation) support to search queries.

Adds support to search user mentions (@username) and hash-tags (#hash-tag).

Adds support for nested tab facets.

Provides the ability to remove parameters such as sort and num_ranks when navigating between tabs.

Enables configuration of the extra searches to run when a specific tab is selected.

Adds a configuration option that enables the specification of a default tab when using tabbed faceted navigation.

Available plugins are listed on the extensions screen, which can be accessed from the navigation panel within the administration dashboard.


Using plugins

Once a plugin has been installed on a server, the next step to using the plugin is to pick a version and enable it on the data source or search package.

Plugins can be enabled from the extensions screen by clicking the Apply button or by changing the settings directly in the data source, results page or search package configuration:

Configuration key Value

plugin.<name of plugin>.enabled


plugin.<name of plugin>.version

<version to enable>

For example, to enable version 1.0.0 of the sample plugin set:

Configuration key Value





Multiple versions of the same plugin can be made available on the same server. To use 2.0.0 of the sample plugin set:

Configuration key Value





if you enable a plugin on a search package, all child results pages will by default inherit that plugin unless you disable it on a specific child results page.

Custom gather plugins

Some plugins can define a custom gatherer, but these will only run if the data source type is set to custom. To use a custom gathering plugin, create a custom data source, then enable the plugin on that data source. If your custom data source uses multiple plugins which define custom gatherers, the following setting in the data source configuration can be used to specify which one to use:

Configuration key Value


<plugin name>

For example, to use the gatherer that comes from the sample plugin:

Configuration key Value



Configuring a plugin

While the bare minimum is to enable a plugin with a version, most plugins will be configured by setting keys in the data source, search package or results page configuration. Each plugin will be different, so you will need to read the documentation to know which settings are expected. Additionally, some plugins can supply filters which need to be added to the filter chain.

When do plugins run?

A plugin will run at different times depending on the type of plugin. These can include:

  • At the start of a custom gather, to provide documents to be indexed

  • During indexing, to provide metadata or do other processing.

  • When a query is executed by a user.

Push data sources

Push data sources will run all plugins at a regular interval that is determined by the time it takes to run them all. They will also all be re-run when executing a vacuum with re-index. Push data sources will apply the data from the last successful plugin execution to any new documents committed.

See also

© 2015- Squiz Pty Ltd