Schema reference
This document describes all searchable fields available in Content Advanced Search, their data types, and supported operators.
Field types
| Type | Description | Supported Operators |
|---|---|---|
text | Analysed text field, tokenised for full-text search | text, phrase, prefix, exists |
keyword | Exact-value string field, not analysed | equal, in, prefix, range, exists |
boolean | True/false value | equal, in, exists |
number | Numeric value (integer or float) | equal, in, range, exists |
date | Date/time value | equal, range, exists |
nested | Nested object requiring the nested operator for multi-field queries | nested (wraps other operators) |
Note: Many fields support both text and keyword types. The appropriate type is automatically selected based on the operator used:
- Full-text operators (
text,phrase) use the analysed text field - Exact-match operators (
equal,in) use the keyword field
Top-level fields
| Field | Type(s) | Description |
|---|---|---|
id | keyword | Unique article identifier |
slug | keyword | URL-friendly article slug |
language | keyword | Article language code (e.g., en, es, fr) |
publishDate | date | Publication date and time |
pinned | boolean | Whether the article is pinned/featured |
singlePage | boolean | Whether the article is a single page |
readTimeMinutes | number | Estimated reading time in minutes |
tags | text, keyword | Article tags |
Hero media fields
Fields under the heroMedia object describe the article's primary media (featured image, video, etc.).
| Field | Type(s) | Description |
|---|---|---|
heroMedia.title | text, keyword | Main headline displayed with the article |
heroMedia.summary | text, keyword | Short description or subheading |
heroMedia.contentType | keyword | Media type (e.g., image, video) |
heroMedia.sourceSystem | keyword | Origin system (e.g., DAM, GETTY) |
heroMedia.sourceSystemId | keyword | ID in the origin system |
Author fields
Fields under the author object.
| Field | Type(s) | Description |
|---|---|---|
author.name | text, keyword | Full name |
author.title | text, keyword | Job title or role (e.g., Sports Editor) |
author.imageUrl | keyword | Profile picture URL |
Content fields
Fields under the content array. Each article can have multiple content blocks.
| Field | Type(s) | Description |
|---|---|---|
content.text | text, keyword | Main body text |
content.title | text, keyword | Block heading |
content.contentType | keyword | Block type (e.g., TEXT, VIDEO, CUSTOM) |
content.content | text, keyword | Raw content |
content.altText | text, keyword | Accessibility text for media |
content.id | keyword | Unique block identifier |
content.sourceSystem | keyword | Origin system for embedded media |
content.sourceSystemId | keyword | ID in the origin system |
content.tags | text, keyword | Block-level tags |
content.platforms | keyword | Target platforms (e.g., web, app) |
content.isHtml | boolean | Raw HTML content flag |
content.openInNewTab | boolean | External link behaviour |
content.customContentType | keyword | Custom block type identifier |
content.customContentKey | keyword | Custom block key |
content.customContentVersion | number | Custom block version |
Categories fields
Nested object. Use the nested operator when querying multiple fields together.
| Field | Type(s) | Description |
|---|---|---|
categories.id | keyword | UUID identifier |
categories.text | text, keyword | Display name (e.g., Premier League) |
Display category fields
The primary category shown in the UI.
| Field | Type(s) | Description |
|---|---|---|
displayCategory.id | keyword | UUID identifier |
displayCategory.text | text, keyword | Display name |
Linked IDs fields
Nested object linking articles to external entities. Use the nested operator when querying multiple fields together.
| Field | Type(s) | Description |
|---|---|---|
linkedIds.sourceSystem | keyword | External system (e.g., OPTA_FOOTBALL_TEAM, OPTA_FOOTBALL_PLAYER) |
linkedIds.sourceSystemId | keyword | Entity ID in that system (e.g., t100) |
linkedIds.text | text, keyword | Human-readable label |
Sponsors fields
| Field | Type(s) | Description |
|---|---|---|
sponsors.text | text, keyword | Sponsor name |
sponsors.imageUrl | keyword | Logo URL |
sponsors.linkUrl | keyword | Click-through URL |
Nested objects
The following fields are nested objects that support dynamic/custom properties:
| Field | Description |
|---|---|
customContent | Custom content properties at the article level |
content.children | Nested child content blocks |
content.customContent | Custom content properties within content blocks |
When querying nested objects with multiple conditions that must match the same nested document, use the nested operator. See Nested operator for details.
Examples
Search by title
{
"query": {
"text": {
"query": "championship",
"path": "heroMedia.title"
}
}
}Filter by category
{
"query": {
"equal": {
"path": "categories.id",
"value": "550e8400-e29b-41d4-a716-446655440000"
}
}
}Filter by linked entity
{
"query": {
"nested": {
"path": "linkedIds",
"query": {
"compound": {
"filter": [
{
"equal": {
"path": "linkedIds.sourceSystem",
"value": "OPTA_FOOTBALL_TEAM"
}
},
{
"equal": {
"path": "linkedIds.sourceSystemId",
"value": "t100"
}
}
]
}
}
}
}
}Filter by date range
{
"query": {
"range": {
"path": "publishDate",
"gte": "now-7d",
"lte": "now"
}
}
}Filter by pinned status
{
"query": {
"equal": {
"path": "pinned",
"value": true
}
}
}Updated 13 days ago
