Table of Contents

Blended Search

properties
Page Owneremaijala

:!: Supported from VuFind® 9.0.

Introduction

Blended search makes it possible to display search results from two or more sources in a single results list. It also supports mapping of facets into unified options as well as mapping active filters to those in multiple backends.

This makes it possible e.g. to display authority records alongside bibliographic records, or include records from the local index as well as an index of licensed electronic material (e.g. Ex Libris Central Discovery Index or EBSCO Discovery Service). Or both. There's no hard limit on the number of backends, though mappings naturally get more complicated when the number of backend increases.

Limitations

Prerequisites

The actual search backends should be configured and tested to work before configuring blended search. These include:

Make sure that the backends that you want to use with blended search work properly standalone before continuing.

:!: It is strongly recommended to enable search caching for each backend to improve performance and reduce duplicated requests. See the [SearchCache] section for the relevant search configuration file for details. Using Memcached is recommended.

Blender can be configured as a search tab in SearchTabs section of config.ini or as default backend by setting `defaultSearchBackend = Blender` in Site section. The URL for blended search results is <vufind base address>/Search/Blended.

Configuration

The following instructions assume that VuFind®'s local directory is local, so all configuration files to be modified are under the local/config/vufind directory. Adjust as necessary.

The actual configuration is done with two files: Blender.ini and BlenderMappings.yaml. Blender.ini contains settings for configuring the search similarly to other backends. BlenderMappings contains all the mappings from backends to common values for facets, search type mappings and sort options.

It is recommended to choose one backend as the “primary” one and use its facet values etc. as the target to which all the other backends are mapped to. This makes configuration easier. However, there's nothing preventing the use of a Blender-specific set of facets that all backends map to, if desired.

Basic Configuration

  1. Copy config/vufind/Blender.ini to local/config/vufind/Blender.ini for modification.
  2. Enable desired backends in [Backends] section.
  3. Use the [Blending] section, if desired, to configure the selection of initial results. You can also define the block size used for records from each source. Block size can also be relative to the total number of results.
  4. Set up all the other settings in Blender.ini according to your needs.

Note that Blender supports its own pseudo-facet blender_backend. It can be used to display all the backends as a facet field and limit results to one or more of them. blender_backend can also be used as a checkbox filter. See [CheckboxFacets] in Blender.ini for examples.

Mappings Configuration

This is expected to be the most laborsome part of the configuration.

  1. Copy config/vufind/BlenderMappings.yaml to local/config/vufind/BlenderMappings.yaml for modification.
  2. See the beginning of the file for information on the format and available settings.
  3. Set up all mappings according to your needs. The sample file contains example mappings for several facets, including mappings to a hierarchical format facet.

There are several noteworthy features particularly with facet mappings:

  
Facets:
  Fields:
    format:
      Mappings:
        EDS:
          Field: SourceType
          Hierarchical: true
          Values:
            Academic Journals: "1/Journal/eJournal/"

The above example would map “Academic Journals” from EDS into “0/Journal/” and “1/Journal/eJournal/”.

Facets:
  Fields:
    fulltext:
      Type: boolean
      Mappings:
        Solr:
          Field: fulltext_boolean
        Primo:
          Field: pcAvailability
          Values:
            "false": 1
          DefaultValue: "true"
        EDS:
          Field: "LIMIT|FT"
          Values:
            "y": true

With the above example, fulltext:1 filter can be used to limit results to available full text resources. With Primo, the pcAvailability filter works the opposite way and must be set to true for the search to return also other resources. The above configuration sets the default value to “true” for just that effect. If fulltext:1 filter is activated, it is mapped to “false” overriding the default value.