Indexes
Start here before building filters or rendering search hits. Algolia mirrors Directus closely, but it flattens relations and omits fields that are unsuitable for search.
Choose an available index
The following collections are indexed by Algolia. If you have access to a collection in Directus and permission to use Algolia, you can also access that collection’s indexed data in Algolia:
articlesfaqssectorsvideostestimonialspodcast_episodespodcast_showsprogramseducational_institutionsregional_education_deskslocations
The Algolia data model for these collections largely mirrors the Directus data model, with a few key differences.
Understand relational data
Only content collections are indexed in Algolia. Other collection types—such as categorization or metadata collections—are not indexed directly. Instead their relational data is embedded into the indexed content items.
For example, the articles collection includes an authors property, which contains an array of author objects.
All junction tables are flattened during sync. Related items are included only partially—each related record exposes a limited set of fields defined in the relation mappings. These mappings determine which fields Algolia receives for both many-to-many and many-to-one relationships.
The following mappings define which properties of related items are synced into Algolia. It does not matter in which collection the related item is embedded; the fields included are always the same.
Use flattened many-to-many relations
| Collection | Fields Included |
audiences | id, title |
authors | id, name, image |
documents | id, title, asset |
faqs | id, question |
phases | id, title |
qualifications | id, name, path |
roles | id, name, path |
sectors | id, title, slug |
sources | id, title |
topics | id, name, path |
tracks | id, name, path |
articles | id, title, path |
podcast_shows | id, title, path, artwork |
podcast_episodes | id, title, path |
testimonials | id, title, path |
videos | id, title, path |
programs | id, title, path, educational_institutions.educational_institutions_id.title, educational_institutions.educational_institutions_id.logo |
profiles | id, first_name, last_name, path, image |
podcast_hosts | id, first_name, last_name, image |
educational_institutions | id, title, path, logo, type |
locations | id, title, url, address, zip, city, country, location_geopoint |
Use mapped many-to-one relations
| Collection | Fields Included |
topics | id, name, path |
news_segments | id, title |
podcast_shows | id, title, path, artwork, podcast_status, creator_name |
seasons | id, season_number, year, show.title |
locations | id, title, url, address, zip, city, country, location_geopoint, opening_hours.id |
areas | id, title, area_center, area_bounds, area_inner |
program_forms | id, url, description, track.name |
podcast_episodes | id, title, path, season.season_number, show.title, show.artwork, publication_date, episode_number |
Know which fields are synced
Most fields in a collection are synced to its Algolia index. Some fields, however, are excluded and will never appear in an Algolia record, regardless of collection:
seobody(see Special Fields)description(when using the Content Document field type, see Special Fields)
Certain collections also have additional excluded fields:
| Collection | Unsynced fields |
educational_institutions | hovi_id, kiesmbo_id, brin_code |
podcast_episodes | transcript_raw, transcript_string_with_speakers, speaker_map |
programs | hovi_id, kiesmbo_id, study_number, program_forms.description |
regional_education_desks | phone_availability, consultation_service_description |
videos | transcript_raw, transcript_string_with_speakers, speaker_map, chapters |
Filter, facet, and search supported attributes
Algolia allows you to refine search results using filters and facets. Faceting enables users to narrow results based on specific attribute values—for example, filtering articles by sector or program type. Each index defines which attributes are available for faceting, and these vary per collection.
In addition, each collection specifies which of its attributes can be searched when sending a query value with you request to Algolia.
| Collection | Facetable Attributes | Searchable Attributes |
| articles | audiences.title, authors.name, phases.title, qualifications.name, roles.name, sectors.title, topics.name, tracks.name, english | title, summary, description, bodyString, topics.name, roles.name, qualifications.name |
| educational_institutions | type | title, type, bodyString |
| faqs | audiences.title, phases.title, sectors.title, topics.name | question, bodyString, topics.name |
| podcast_episodes | audiences.title, phases.title, roles.name, sectors.title, topics.name, tracks.name, show.title | title, show.title, bodyString, transcript_string, guests.first_name, guests.last_name |
| podcast_shows | audiences.title, phases.title, sectors.title | title, creator_name, bodyString, hosts.first_name, hosts.last_name |
| programs | qualifications.name, roles.name, sectors.title, educational_institutions.title, type, level, degree, program_forms.tracks.name | title, program_forms.bodyString, qualifications.name, educational_institutions.title, type, level, degree |
| regional_education_desks | sectors.title, has_consultation_service, orientation_activity_types, content_types | title, regions, cities_municipalities, bodyString |
| sectors | (none) | title, alt_names, description, introduction, roles_content, routes_content, salary_content, costs_content |
| testimonials | audiences.title, authors.name, phases.title, roles.name, sectors.title, topics.name, tracks.name | title, summary, description, bodyString, topic.name, authors.name, roles.name |
| videos | audiences.title, phases.title, roles.name, sectors.title, topics.name, tracks.name | title, transcript_string, profiles.first_name, profiles.last_name, bodyString |
| locations | has_programs, has_educational_institutions, has_regional_education_desks | (none) |
Handle special fields
Some collection fields include specialized handlers and mappings. These are outlined below.
Use geo data for location search
Algolia supports geospatial search, filtering and sorting, which is especially useful when working with navigator collections containing location data.
For regional_education_desks, the _geoloc property contains an array of coordinate pairs. This array represents a grid of individual points describing the desk’s area of operation. These points have no real-world physical meaning; they exist solely to enable filtering for cases where the area of operation falls within a radius of size X relative to the user’s location.
Search flattened content documents
Fields of type Content Document contain deeply nested, tree-structured JSON. Algolia does not index such objects effectively.
To ensure reliable search behavior, these documents are synchronized as a flat text string without markup. The resulting string is stored in the bodyString property, which is searchable by default.
Keep in touch with the latest
Sign up for our monthly deep dives - straight to your inbox.