---
title: "Indexers"
manual: "TYPO3 Search Algolia"
version: "3.1"
permalink: "https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:indexers@3.1"
source: "Indexers/Index.rst"
rendered: "2026-09-30T11:54:37+00:00"
---

# Indexers {#indexers}

An indexer knows how to read, process and index the records of one
record type. There is exactly one indexer per record type, and any number
of indexing services (see [Indexing service](https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:configuration-indexing-service@3.1)) can
configure it.

-   [Page indexer](https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:page-indexer@3.1)
-   [Content element indexer](https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:content-element-indexer@3.1)
-   [News indexer](https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:news-indexer@3.1)
-   [File indexer](https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:file-indexer@3.1)

## Standard fields {#indexers-standard-fields}

Every indexer sends these fields to Algolia:

| Field | Description |
| --- | --- |
| `uid` | The UID of the record. |
| `pid` | The page ID of the record. |
| `type` | The record type, i.e. the table name. |
| `indexed` | The time of indexing. |
| `created` | The creation time of the record, if available. |
| `changed` | The time of the last change of the record, if available. |

## Field mapping {#indexers-field-mapping}

Which record fields are sent to Algolia, and under which attribute name,
is configured per table in TypoScript under
`module.tx_typo3searchalgolia.indexer.<table>.fields`, in the form
`<record field> = <attribute name>`. The defaults are listed on the
page of each indexer.

> [!WARNING]
> When the console command `mkk:queue:index:worker`, which sends the
> records to Algolia, runs on the command line (cron or the scheduler
> command), it has no site context. It reads only the TypoScript shipped
> with the extension, so changes to the mapping or to the allowed file
> extensions in your site TypoScript are not applied when records are
> indexed. The **Attributes** backend module reads the
> TypoScript of the backend context, so it can show a different mapping
> than the one used for the indexed records.

> [!NOTE]
> Anyone holding the search key of your frontend can retrieve every
> indexed attribute. Hide personal data such as `authorEmail` with the
> Algolia index setting `unretrievableAttributes`.

## When records are indexed {#indexers-queue}

Records are indexed through the indexing queue:

-   Creating or updating a record in the backend queues it for
    reindexing. A hidden record, or one with **Include in Search**
    disabled, is removed from the queue and from the index instead.
    Deleting a record removes it from the queue and from the index. The
    saved record itself is only queued by indexing services of its own
    site, see [Search engine](https://docs.typo3.org/permalink/meine-krankenkasse/typo3-search-algolia:configuration-search-engine@3.1). Saving an enabled page
    also queues its content elements for every content element indexing
    service that covers them, whatever site the service belongs to. Saving
    a hidden page, or one with **Include in Search** disabled,
    removes its content elements from the queue and the index instead.
-   The **Queue** backend module queues all records of the
    selected indexing services. It skips hidden subpages of the pages
    selected in **Pages (recursively)**, together with their
    subpages and the records on them.
-   The console command `mkk:queue:index:worker`, usually run as a
    scheduler task, processes the queue and sends the records to Algolia.
