VuFind’s search layer is split across three configuration files that work in concert:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/vufind-org/vufind/llms.txt
Use this file to discover all available pages before exploring further.
searches.ini controls runtime behaviour (default handler, sort order, results per page, recommendations), searchspecs.yaml controls how each search type maps to Solr fields and with what relevance weights, and facets.ini controls which facets appear and how they behave. Understanding what each file does — and which one to edit — is the key to tuning search quality for your collection.
Search backends
VuFind supports multiple search backends. The default is Solr, but you can also connect to external discovery platforms.| Backend | Description |
|---|---|
| Solr | VuFind’s own Solr index — the most common setup |
| EDS | EBSCO Discovery Service |
| Primo | Ex Libris Primo |
| Summon | ProQuest Summon |
| WorldCat | OCLC WorldCat Search API |
| EIT | EBSCO Integration Toolkit |
| Blender | Combines results from multiple backends in a single result set |
.ini file (e.g., EDS.ini, Primo.ini) for API credentials and backend-specific options. The active default backend is controlled by defaultSearchBackend in config.ini [Site]:
Access to Primo and EDS results can be gated by role in
permissions.ini using the access.PrimoModule and access.EDSExtendedResults permissions respectively.searches.ini — runtime search behaviour
Copyconfig/vufind/searches.ini to local/config/vufind/searches.ini and edit the sections you need.
General settings
Search handlers (Basic_Searches and Advanced_Searches)
These sections control which search types appear in the search box drop-down and on the advanced search form. Keys correspond to handler names insearchspecs.yaml; values are translation keys.
Sorting
Applying default filters
You can pre-filter all searches without exposing the filter to users as a facet:hiddenFilters[] setting available in individual backend configuration files.
Recommendations modules
Recommendations modules show suggestion boxes above ([TopRecommendations]) or beside ([SideRecommendations]) results.
searchspecs.yaml — field boosting and relevance tuning
searchspecs.yaml defines how each named search type is translated into a Solr query. Each entry can specify DismaxFields (used when eDismax/Dismax can handle the query) and QueryFields (used for complex queries Dismax cannot handle).
Anatomy of a search type definition
Tuning field weights
Boost values (the numbers after^) are relative. A field with ^500 is weighted ten times more heavily than one with ^50. To prioritize exact title matches over stemmed matches, give title_full_unstemmed a higher weight than title_full.
Dismax parameters
You can overridemm (minimum-should-match) or bf (boost function) per search type:
JournalTitle with filter query
Global boost functions
TheGlobalExtraParams block lets you apply boost functions conditionally across search types:
facets.ini — faceted navigation
facets.ini maps Solr field names to display labels and controls how facets are rendered.
Side facets (Results section)
Top facets
Date-range facets
Fields listed underdateRange[] in [SpecialFacets] render as a year-range slider instead of a flat list:
Hierarchical facets
Checkbox facets
Checkbox facets let users filter by a boolean condition rather than selecting a facet value:Combined search (Blender)
The Blender backend merges results from two or more backends into a single result list. Configure it inBlender.ini and reference it as a tab in your search configuration.
The Blender backend respects the facet and sorting configuration of each sub-backend. Merged result sets are interleaved based on a configurable ratio defined in
Blender.ini [Blending].