Skip to content

Configuring auto-completion datasets

There are several different types of auto-completion datasets that are supported.

Before Concierge can be added to a search one or more auto-completion datasets must be generated or configured. A dataset will generally correspond to a column of auto-completion suggestions that is returned to the user.

A Concierge widget supports combinations of the following:

  • up to one simple auto-completion dataset
  • up to one recent searches auto-completion dataset
  • zero or more structured auto-completion datasets

Notes:

  • In practice the UI will limit the total number of datasets to about four.
  • Each additional dataset added to concierge will add a request to your Funnelback server for each keystroke entered into a search box so consider the impact on your server performance when making heavy use of multiple auto-completion datasets.

Simple auto-completion

Simple auto-completion is generated from the words contained within the document content and is based upon:

  • The spelling index generated for a collection
  • Link labels (e.g. <a href="...">Link label</a>)
  • Queries associated with clicks

The suggestions comprise of single words or short phrases that match the partially entered query.

Simple auto-completion is generated automatically by default for every profile that exists on a collection, and auto-completion suggestions are scoped to the set of words that apply to the profile that is being queried.

Simple auto-completion options

  • Partial matching support: The partials option will produce an index that supports word matches from the start of words within an auto-completion phrase. Enable partial matching support by setting the -partials build_autoc option.

    e.g. When -partials is enabled, auto-completion of Funnelback search engine will be triggered by a person starting to type Funnelback, search or engine. With -partials not set then the suggestion will only trigger when someone starts to type Funnelback.

Preventing words from appearing as simple auto-completion suggestions

The spelling suggestions index is used to provide the set of words for simple auto-completion.

The spelling suggestion blacklist can be used to prevent specific words from being presented as auto-completion suggestions.

Adding words to simple auto-completion

The spelling suggestion whitelist can be used to configure specific words or phases to add to the set of suggestions, with higher than normal weightings.

Simple auto-completion scope

Simple auto-completion will be automatically scoped for each profile to prevent suggesting queries that would show no results in that profile. This works using the query processor options specified in the padre_opts.cfgfile for the profile (if there is one). If the padre_opts.cfg file is not present, then auto completion suggestions are not scoped.

If a profile contains scope query processor options such as gscopes in the padre_opts.cfg file, auto-completion suggestions are only generated for queries that return results once that scoping is applied.

Manual generation of simple auto-completion

Simple auto-completion is generated by running the build_autoc command, specifying the relevant spelling index and collection/profile.

Command format:

$SEARCH_HOME/bin/build_autoc <INDEX_STEM> <SPELLING_INDEX> -collection <COLLECTION_NAME> -profile <AUTOCOMPLETE_PROFILE_NAME>

Structured auto-completion

Structured auto-completion is generated from CSV data that is defined in Funnelback's auto-completion CSV format.

The JSON structured auto-completion type is recommended for use with the auto-completion Concierge plugin. The plugin includes support within the frontend configuration to template the suggestion's display. It is also possible to use the HTML type, however this will be returned pre-formatted by Funnelback, so it's use is not recommended.

The CSV data can be created in a number of different ways:

  1. Manually edited by an administrator with access to the administration interface.

  2. Generated (in Funnelback auto-completion CSV format) by an external system (e.g. database export) and downloaded as part of a Funnelback update.

  3. Generated from metadata embedded within a Funnelback index. This is similar to no. 2 above but uses Funnelback's index and a custom Freemarker template to produce the CSV file. The CSV file is generated as part of the Funnelback update, after the search index is built.

    See also: Using Funnelback to generate structured auto-completion.

Configuring a CSV data source

  1. Open the administration interface and select the collection on which you would like to configure auto-completion.

  2. From the administer tab, select Edit Collection Configuration then on the left-hand side column select auto-completion. Ensure that both spelling suggestions and CSV are checked in the query completion source section then press the save button. This ensures that both simple and structured auto-completion will be built for the collection.

  3. Create a profile for each CSV auto-completion source that you wish to add as a column to concierge. Profile are created from the administer tab by selecting select manage profiles.

    e.g. Consider a web search where you would like to provide 3 columns of auto-completion - a simple auto-completion source based on words in the index, and two additional columns based on CSV data - say people and products. To do this requires simple auto-completion to be generated on the _default profile and two additional profiles created to handle the structured auto-completion datasets. Create two profiles, people-ac and products-ac. Create two new profiles called people-ac and products-ac.

  4. Return to main administration interface page by clicking on the Funnelback logo, then select browse collection configuration files from the administer tab and locate the configuration files for the profile's presentation preview files. e.g. for the people-ac profile these will be beneath a heading people-ac / Presentation (preview).

  5. Create a padre_opts.cfg file by selecting padre-opts.cfg from the create menu within the profile. Enter -lscope=<some random string of letters> as the contents of the file then save and publish it. e.g. -lscope=gdskgfhg This is required to ensure that the auto-completion that is generated for the people-ac profile contains only the CSV based suggestions.

  6. Create a auto-completion.csv file by selecting auto-completion.csv from the create menu within the profile. This file should contain the suggestions for only the dataset that is being configured. e.g. for the people-ac dataset this file should contain people suggestions specified in the auto-completion CSV format. Once the CSV has been input save and publish the file.

  7. The auto-completion indexes will be generated the next time the collection updates. If you wish the auto-completion to be generated straight away, then run an advanced update on the collection, reindexing the live view. (Note: if the collection you are working on is a meta collection you will need to update one of the component collections instead).

  8. Check that the auto-completion is generated by viewing the collection's log files (select view log files from the administer tab). There should be a Step-BuildAutoCompletion.<profilename>.log for each of the profiles you have created listed under the live logs files heading. e.g. Step-BuildAutoCompletion.people-ac.log. This log file provides information on the number of auto-completion suggestions that were added, and will also report if the CSV had any incorrect lines.

Recent searches

When search sessions are enabled, Funnelback can be configured to return recent searches as an auto-completion source.

The sessions and history functionality within Funnelback requires the Javascript for the sessions and history functionality to be included in your front end design. This hapens by default if you are using the default Freemarker template included with Funnelback.

The recent search keywords along with the number of results are returned as a list of suggestions under the recent searches heading.

Configuring recent searches in auto-completion

Add the following to the collection that is being searched:

# Enable sessions functionality. 
ui.modern.session=true
# Enable recent searches in auto-completion
ui.modern.session.search_history.suggest=true
# (opt) Set template for display of suggestions.
ui.modern.session.search_history.suggest.display_template={query} ({totalMatching})
# (opt) Set category name (def: recent searches)
ui.modern.session.search_history.suggest.category=Recent searches

See also

top

Funnelback logo
v15.24.0