Instant search

This article details the steps involved in configuring Funnelback to provide an instant search. Instant search is where the search results display updates as you type the query.

Supporting instant search involves enabling a plugin to handle the processing of partial queries, and building a template that can request and update search results for each keystroke entered by a user.

Funnelback does not include any out-of-the-box support within the default Freemarker templates to work with instant search, however the Freemarker templates can be easily modified to provide an instant search.

Process

  1. Enable and configure the query language - wildcard (truncation) support plugin, which will enable Funnelback to process partial-word queries.

  2. Update your search integration to use Javascript to make search requests for each keystroke entered into the search box. The Javascript should make the search request, and also update the search results (including counts/facets etc.) for each keystroke.

    When submitting the query to Funnelback you must append an asterix to the end of the query parameter, otherwise the instant search will not expand the partial term. e.g. if someone has typed cert into the search box you should submit query=cert* to Funnelback so that it knows to expand the word.
  3. Ensure the auto-completion configuration for the results page is updated to remove any simple/organic auto-completion data sets.

Limitations

The instant search method outlined above uses a plugin to expand search queries that are submitted to Funnelback. This works by using the auto-completion system to expand the partial word into a set of expanded words which are then submitted to the search engine.

This means that simple/organic auto-completion must be generated for the results page as all expansions are based on this auto-completion index. This is done by default, but can be overridden in configuration by turning auto-completion off, or by removing the internal auto-completion source from the auto-completion.sources setting.

The amount of expansion can be controlled by altering the plugin configuration, but will never expand to all possible variants of the partial word.