PHPackages                             hmmh/solr-file-indexer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. hmmh/solr-file-indexer

ActiveTypo3-cms-extension[File &amp; Storage](/categories/file-storage)

hmmh/solr-file-indexer
======================

Solr file indexer for Typo3

4.0.7(2mo ago)13217.4k—5.3%11[1 issues](https://github.com/hmmh/typo3-solr-file-indexer/issues)2GPL-3.0-or-laterPHPPHP &gt;=8.1

Since May 8Pushed 2mo ago5 watchersCompare

[ Source](https://github.com/hmmh/typo3-solr-file-indexer)[ Packagist](https://packagist.org/packages/hmmh/solr-file-indexer)[ RSS](/packages/hmmh-solr-file-indexer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (7)Versions (67)Used By (2)

EXT solr\_file\_indexer
=======================

[](#ext-solr_file_indexer)

This extension gives you the capability to index individual documents using Solr.

Apache Tika, which is capable of detecting and extracting metadata from approx. 1200 different file types is used for document content analysis. The configuration for Tika can be implemented directly within the extension, Solr server functionality is then used for parsing.

Individual documents can be added to the search index for the default language or any localisation, likewise site roots can be selected for which the document is to indexed.

Installation
------------

[](#installation)

The extension has the following requirements:

- TYPO3 CMS &gt;= 12.4
- PHP &gt;= 8.1
- EXT: TYPO3 Solr &gt;= 12.0.0

The extension can be installed using composer.

After installation activate the extension within the extension manager.

Changes in v3
-------------

[](#changes-in-v3)

- New mode to enable indexing: The setting of which document should be indexed is no longer made in the metadata. The setting is now made in File collections.
- New command line task which handles the indexing process
- New localization management: There is no longer a global setting to index documents for all languages. This is now controlled via file collections, which can be translated for the appropriate languages.
- Replace Hooks with Events
- Replace scheduler task for cleanup with a command line task
- Remove Dashboard Widgest from this Extension (now available in hmmh/solr-file-indexer-admin)

Configuration
-------------

[](#configuration)

Example:

```
plugin.tx_solr {
  index {
    queue {
      sys_file_metadata = 1
      sys_file_metadata {
        initialization = HMMH\SolrFileIndexer\IndexQueue\FileInitializer
        indexer = HMMH\SolrFileIndexer\Indexer\FileIndexer
        allowedFileTypes = pdf,doc,docx,xlsx

        fields {
          title = title
          created = crdate
          changed = tstamp

          size_intS = SOLR_RELATION
          size_intS {
            localField = file
            foreignLabelField = size
          }

          fileExtension = SOLR_RELATION
          fileExtension {
            localField = file
            foreignLabelField = extension
          }

          title_stringS = SOLR_RELATION
          title_stringS {
            localField = file
            foreignLabelField = name
          }

          description = description
          keywords = keywords
          author = creator
        }
      }
    }
  }
}

```

To activate the indexing configuration set "plugin.tx\_solr.index.queue.sys\_file\_metadata" to "1".

Configure "allowedFileTypes" with a comma seperated list of permitted file types.

The "fields" parameter provides a mapping from the "sys\_file\_metadata" fields to the respective Solr "sys\_file" fields.

Adding a document to the search index
-------------------------------------

[](#adding-a-document-to-the-search-index)

Create or add a File collection, choose the type you want (folder, category, static) and select the desired site roots within the "Search" tab.

You have to set the scheduler task (Execute console command) "solr\_file\_indexer:item-queue-worker" as a recurring task, i.e. all 10 minutes. The task handles, which files are added or updated in the solr index queue and which has to removed. The index queue workers will add the document/metadata to the search index during the next cycle.

Whenever a file collection is deleted or set to hidden, the documents automatically removed from the corresponding Solr index queue and search index during the next cycle of "solr\_file\_indexer:item-queue-worker".

In order to index documents for all (or desired) languages, a file collection can either be created for language "All" or localized. A localized file collection can contain a different type and different documents.

Scheduler Tasks
---------------

[](#scheduler-tasks)

There is a command line task "solr\_file\_indexer:delete-by-type" that can delete files types (i.e. "sys\_file\_metadata") from the search index. File types are deleted from the Solr server search index for all languages but only for a specified site root.

Also there is the task "solr\_file\_indexer:item-queue-worker" which is relevant for the indexing process and must integrated as recurring task.

###  Health Score

65

—

FairBetter than 99% of packages

Maintenance86

Actively maintained with recent releases

Popularity44

Moderate usage in the ecosystem

Community28

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 94.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~61 days

Recently: every ~50 days

Total

48

Last Release

62d ago

Major Versions

3.0.1 → 4.0.12025-02-03

3.0.2 → 4.0.22025-02-10

2.6.1 → 4.0.32025-04-25

3.0.3 → 4.0.52026-01-08

3.0.4 → 4.0.62026-02-27

PHP version history (5 changes)1.0.0PHP &gt;=7.0

2.0.0PHP &gt;=7.2

2.1.0PHP &gt;=7.2.0

2.5.0PHP &gt;=7.4.0

3.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/0fbcb5c834ad511bbf12b303f38026f1c00466d4e2fe1e96f5bcfbae83779ac9?d=identicon)[nimayneb](/maintainers/nimayneb)

![](https://www.gravatar.com/avatar/df26dc32dacd6b68e89a9956d09c9ac2143229e7e2b7eb8162f9244b3b2b8072?d=identicon)[swilking](/maintainers/swilking)

![](https://www.gravatar.com/avatar/9e35b08c4d8901ac1633376452ecb48aadebdc2f262e10719dfd8b147e31d522?d=identicon)[woemar](/maintainers/woemar)

![](https://www.gravatar.com/avatar/917bd5f7236bb7270ad66aead037dc9d58c82fecb681d07c1917441a5898d710?d=identicon)[mzanter](/maintainers/mzanter)

---

Top Contributors

[![swilking](https://avatars.githubusercontent.com/u/3242717?v=4)](https://github.com/swilking "swilking (173 commits)")[![derhansen](https://avatars.githubusercontent.com/u/2629896?v=4)](https://github.com/derhansen "derhansen (2 commits)")[![magicsunday](https://avatars.githubusercontent.com/u/564393?v=4)](https://github.com/magicsunday "magicsunday (2 commits)")[![b3nkai](https://avatars.githubusercontent.com/u/4747562?v=4)](https://github.com/b3nkai "b3nkai (1 commits)")[![MarcoPNS](https://avatars.githubusercontent.com/u/35105681?v=4)](https://github.com/MarcoPNS "MarcoPNS (1 commits)")[![mediaessenz](https://avatars.githubusercontent.com/u/16038153?v=4)](https://github.com/mediaessenz "mediaessenz (1 commits)")[![koehnlein](https://avatars.githubusercontent.com/u/16088567?v=4)](https://github.com/koehnlein "koehnlein (1 commits)")[![christophlehmann](https://avatars.githubusercontent.com/u/4953689?v=4)](https://github.com/christophlehmann "christophlehmann (1 commits)")[![julianhofmann](https://avatars.githubusercontent.com/u/25646388?v=4)](https://github.com/julianhofmann "julianhofmann (1 commits)")

---

Tags

file-indexertikatypo3-extensiontypo3-solrfilesolrtypo3apacheindexertika

### Embed Badge

![Health badge](/badges/hmmh-solr-file-indexer/health.svg)

```
[![Health](https://phpackages.com/badges/hmmh-solr-file-indexer/health.svg)](https://phpackages.com/packages/hmmh-solr-file-indexer)
```

###  Alternatives

[ichhabrecht/filefill

Find and fetch missing local files from different remotes

671.4M1](/packages/ichhabrecht-filefill)[apache-solr-for-typo3/solr

Apache Solr for TYPO3 - Apache Solr for TYPO3 is the enterprise search server you were looking for with special features such as Faceted Search or Synonym Support and incredibly fast response times of results within milliseconds.

1473.0M32](/packages/apache-solr-for-typo3-solr)[beechit/fal-securedownload

Secure download of assets. Makes it possible to secure FE use of assets/files by setting permissions to folders/files for fe\_groups.

37569.0k3](/packages/beechit-fal-securedownload)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
