Skip to content

University of Lincoln — Terminalfour Search

Overview

Lincoln Search is powered by three distinct components:

  • Terminalfour Search Crawler: Responsible for visiting pages and fetching content.
  • Site Search Dashboard: Responsible for the user interface, ranking, and display logic.
  • Terminalfour Search content type: Adds the Search Results page to the website.

User Interface & Implementation

Site Search is accessed via the magnifying glass icon in the website header. Clicking this reveals an overlay with a search input, which submits through to the search results page.

  • Front-end code: located in the Terminalfour Search content type.
  • Search UX library: SearchStax Studio JS v4.2.25, loaded from the SearchStax CDN.
  • Live example: https://www.lincoln.ac.uk/search/ 

The results page is built from the following widgets, each with a custom template so the markup matches the University's design system:

Widget Container Purpose
Search input #searchstax-input-container Keyword input and auto-suggestions
Tabs #searchstax-tabs-container Section-type tabs (All Results, Courses, Events, Staff)
Search feedback #search-feedback-container "1 – 10 of 18 results for…" line
Sorting #search-sorting-container Relevance / Most Recent
Facets #searchstax-facets-container Sidebar filters
Results #searchstax-results-container Result cards
Pagination #searchstax-pagination-container Previous / Next
External promotions #searchstax-external-promotions-layout-container Promoted external links

Data Collection (The Crawler)

The Terminalfour Search Crawler visits the website on a schedule to fetch metadata and page content.

  • Crawl frequency: daily
  • Configurations: URL settings, exclusions, and metadata mappings are held in the crawler configuration.
  • Indexing logic: the crawler must be able to find a page in order to index it. A page hidden from navigation with no inbound links will not be discovered.
  • Robots.txt: the file generated by the Robots File content type must allow the crawler. For example:
User-agent: terminalfour-nutch-spider
Allow: /
Crawl-delay: 0.5

Metadata

The crawler picks up metadata from page templates. Field assignment is defined per Page Type

Automatic data mapping

The crawler collects and pushes the following fields to Site Search automatically. These appear in the Site Search Dashboard without any configuration.

Field Description
host Host name of the URL
url The full page URL
id The unique identifier (URL)
content Content extracted from the body of the page
tstamp Timestamp of when the URL was last fetched
urlDepth How many clicks deep the page is from the root
url_keywords Keywords extracted from the URL string

Custom indexed fields

The results templates read the following mapped fields. Any change to these field names in the Dashboard requires a matching change in the content type's result templates.

Shared

Field Used for
sectionType_s Drives tab selection and which result card is rendered
dctitle_txt_en Fallback title when the crawler title is empty
searchtitle_txt_en Search-specific title override
description_txt_en Result summary
content Result summary fallback, trimmed to 200 characters
category_s Category tag
imageAlt_t Alt text for the result thumbnail

Courses

Field Used for
CourseLevel1_s Level label shown above the course title
CourseType_s Course type
ucasPoints_t "UCAS tariff points" row
CourseALevel_t "A-level entry" row

Events

Field Used for
EventStartDay_t, EventEndDay_t Day portion of the displayed date range
EventStartMonth_t Month, abbreviated for display (e.g. AugustAug)
EventStartYear_t, EventEndYear_t Year portion
EventStartTime_t Time shown beside the clock icon
EventLocation_s Location shown beside the pin icon
EventCategory_s Category tag on the event card

Staff

Field Used for
StaffTitle_t, StaffName_t Card heading
StaffURL_s Link target for the staff profile
StaffDepartment_txt_en Department
StaffDivison_txt_en Division (note: the field name is misspelled at source)
StaffEmail_s Contact email, rendered as a mailto: link

Event dates are assembled into a single display string at render time, so 1 Aug 2026 and 10 – 13 Aug 2026 are both produced from the same set of fields. Leading zeroes are stripped.

Content Exclusion & Visibility

There are several ways to prevent a page from being indexed or from appearing in search results, depending on your access level.

Method Effect Access level
'Remove from crawl' element Ticking this on a section's General tab adds a robots noindex meta tag. The page is not indexed, but links on the page are still followed. Moderator
'Hide from search' element Ticking this on a section's General tab adds a sectionDisplay false meta tag. The page is crawled but hidden from the search results interface. Moderator
Metadata tab 'Robots' element Set a custom robots meta tag, e.g. noindex, nofollow, to prevent indexing and stop the crawler following links. Moderator
Robots.txt disallow rules Add disallow rules via the Robots File content type to keep the crawler out of whole areas, e.g. Disallow: /component-library/*. Administrator
URL filter regex Add exclusion rules directly in the crawler settings. Crawler access

Search Management & Customisation

Search behaviour is managed in the Site Search Dashboard.

  • Searchable fields: define which fields are indexed for searching and which are returned for display in the results list.
  • Ranking: adjust weighted ranking criteria, e.g. to give more weight to specific metadata fields.
  • Search rules:
    • Promotions: pin specific internal or external pages to the top of results for certain keywords.
    • Synonyms: group related terms (e.g. "Student" and "Learner") so they return the same results.
    • Stop words: define common words to be ignored to improve accuracy.
  • Facets (filters): manage the sidebar filters that let users narrow results.

Search Profiles

A search profile organises search configuration, analytics, and result behaviour. Multiple profiles can exist to support different areas or languages.

Profile Where it is set Notes
redesign Sent on every query by the front end The relevance profile queries run against
Main Profile Search feedback widget Profile the feedback widget reports into

Layouts

Layouts define which fields and metadata are indexed and made available for searching, filtering, and display. The following section types are in use, determined by the sectionType_s field:

  • Webpage — standard University website pages
  • Courses — course and programme pages
  • Events — event listings and event detail pages
  • Staff — staff profiles

News and Webpage are indexed but their tabs are hidden in the interface; their results still appear under All Results.

Filters (Facets)

Filters allow users to refine results based on indexed metadata. Users can apply more than one filter at a time, and results update as each is applied.

Filter Notes
Study level Courses tab
Degree type Courses tab
Study mode Courses tab
Department Staff tab
Division Staff tab
Locations Events tab
Category Events tab
Section Type Hidden in the interface — surfaced as the tabs instead

Applied filters appear as removable pills in the bar above the results, alongside a Clear filters control that removes all of them in one action.

Visual Templates

Visual templates control how individual results are displayed.

Template Applies to Contents
All Results row Every result on the All Results tab Type tag, title, summary
Course card Courses tab Level, title, UCAS tariff points, A-level entry, summary
Event card Events tab Thumbnail, date, title, time, location, category tag
Staff card Staff tab Name and title, department, division, email link
No results Any tab "No matching results" message plus a spelling suggestion where one is available

Result titles are cleaned at render time: the " - University of Lincoln" suffix is removed, and anything after a pipe character is dropped. Summaries are trimmed to 200 characters at the nearest word boundary and suffixed with an ellipsis.

Sorting and Ranking

Ranking is configured per relevance profile in the Dashboard and can prioritise specific content types, fields, or promoted results.

Users can re-sort results using the Sort by control:

  • Relevance (default)
  • A-Z by search title
  • Z-A by search title

How to Promote Specific Results

Promoted Results allow specific content to appear prominently within search results, and can be used to highlight key content, campaigns, or external resources.

  • Internal promotions pin an indexed page to the top of results for chosen keywords.
  • External promotions render as a promo panel above the results list, with a heading, description, and call-to-action link. These are used for destinations outside the indexed site.

Promotions are configured against keywords in the Dashboard under Search Rules.

Search Box

The search box links directly to Site Search from:

  • The main site navigation
  • The global page layout
  • The 404 error page

This ensures users can always reach search, even when content cannot be found.

Searching

Performing a search

Users enter a term in the search box in the main navigation and are directed to the search results page. Results are returned against the configured relevance profile.

Understanding search results

  • Results are displayed using different visual templates depending on content type.
  • The result count and search term are shown above the results.
  • Promoted results may appear at the top of the list.

Refining results

  • The tabs narrow results to a single section type.
  • Sidebar filters narrow results further within a tab.
  • Applied filters are listed as pills above the results and can be removed individually or all at once.

Auto-suggestions

As users type, suggestions appear beneath the search input, drawn from the suggester collection. Suggestions are keyboard-navigable and help users discover commonly searched terms.

Pagination

Results are returned 10 per page with Previous / Next controls. Changing page scrolls the user back to the top of the results.

Front-end Customisations

The following behaviours are implemented in the content type rather than configured in the Dashboard. They are worth knowing about before making changes to the templates.

All Results tab. This tab is not returned by the search index — it is added to the tab list by the front end, and its count is the unfiltered total for the current query. Its active state is driven by the absence of a sectionType_s parameter in the URL rather than by the widget.

Applied filters row. The pills above the results are rendered by the content type from the state of the facet checkboxes, not from the widget's own pill markup, so that they can sit in the refine bar rather than in the sidebar. Removing a pill re-triggers the corresponding checkbox, so the widget remains the source of truth.

Mobile layout. Below 992px the facet panel moves from the sidebar to sit directly beneath a Filter button in the refine bar, and is collapsed by default. The button is hidden on the All Results view, where there are no filters to apply.

Facet accordion. Facet group panels are expanded and collapsed by custom code rather than by Bootstrap's collapse plugin, and their open/closed state is preserved across result re-renders.

Disabled features. The following SearchStax widgets are available but are not currently enabled: Smart Answers (AI-generated answers), Related Searches, Location Search, and the Search Feedback rating panel.