PHPackages                             flowpack/elasticsearch-contentrepositoryqueueindexer - 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. [Search &amp; Filtering](/categories/search)
4. /
5. flowpack/elasticsearch-contentrepositoryqueueindexer

ActiveNeos-package[Search &amp; Filtering](/categories/search)

flowpack/elasticsearch-contentrepositoryqueueindexer
====================================================

Neos CMS Elasticsearch indexer based on a job queue

5.2.4(1y ago)895.5k—2.3%29[3 PRs](https://github.com/Flowpack/Flowpack.ElasticSearch.ContentRepositoryQueueIndexer/pulls)MITPHP

Since Jul 6Pushed 1y ago4 watchersCompare

[ Source](https://github.com/Flowpack/Flowpack.ElasticSearch.ContentRepositoryQueueIndexer)[ Packagist](https://packagist.org/packages/flowpack/elasticsearch-contentrepositoryqueueindexer)[ RSS](/packages/flowpack-elasticsearch-contentrepositoryqueueindexer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (34)Used By (0)

Neos CMS Elasticsearch indexer based on a job queue
===================================================

[](#neos-cms-elasticsearch-indexer-based-on-a-job-queue)

[![Latest Stable Version](https://camo.githubusercontent.com/b519d4520e269628ea93e3e9a63eebff5b4ab6f96efd4ab3e0b48378fa9a27ec/68747470733a2f2f706f7365722e707567782e6f72672f666c6f777061636b2f656c61737469637365617263682d636f6e74656e745265706f7369746f72795175657565496e64657865722f762f737461626c65)](https://packagist.org/packages/flowpack/elasticsearch-contentRepositoryQueueIndexer) [![Total Downloads](https://camo.githubusercontent.com/69f3a53b81306bb8f93cb704e9235efd0d788945aaea04e5b0cc642ec999435d/68747470733a2f2f706f7365722e707567782e6f72672f666c6f777061636b2f656c61737469637365617263682d636f6e74656e745265706f7369746f72795175657565496e64657865722f646f776e6c6f616473)](https://packagist.org/packages/flowpack/elasticsearch-contentRepositoryQueueIndexer)

This package can be used to index a huge amount of nodes in Elasticsearch indexes. This package use the Flowpack JobQueue packages to handle the indexing asynchronously.

**Topics**

- [Installation](#installation-and-configuration)
- [Indexing](#indexing)
- [SupervisorD configuration](#supervisord-configuration)
- [Update Instructions](#update-instructions)

Installation and Configuration
==============================

[](#installation-and-configuration)

You need to install the correct Queue package based on your needs.

Available packages:

- [sqlite](https://packagist.org/packages/flownative/jobqueue-sqlite)
- [beanstalkd](https://packagist.org/packages/flowpack/jobqueue-beanstalkd)
- [doctrine](https://packagist.org/packages/flowpack/jobqueue-doctrine)
- [redis](https://packagist.org/packages/flowpack/jobqueue-redis)

Please check the package documentation for specific configurations.

The default configuration uses the FakeQueue, which is provided by the JobQueue.Common package. Note that with that package jobs are executed synchronous with the `flow nodeindexqueue:build` command.

Check the `Settings.yaml` to adapt based on the Queue package, you need to adapt the `className`:

```
Flowpack:
  JobQueue:
    Common:
      presets:
        'Flowpack.ElasticSearch.ContentRepositoryQueueIndexer':
          className: 'Flowpack\JobQueue\Common\Queue\FakeQueue'

```

If you use the [doctrine](https://packagist.org/packages/flownative/jobqueue-doctrine) package you have to set the `tableName` manually:

```
Flowpack:
  JobQueue:
    Common:
      presets:
        'Flowpack.ElasticSearch.ContentRepositoryQueueIndexer':
          className: 'Flowpack\JobQueue\Doctrine\Queue\DoctrineQueue'
      queues:
        'Flowpack.ElasticSearch.ContentRepositoryQueueIndexer':
          options:
            tableName: 'flowpack_jobqueue_QueueIndexer'
        'Flowpack.ElasticSearch.ContentRepositoryQueueIndexer.Live':
          options:
            tableName: 'flowpack_jobqueue_QueueIndexerLive'

```

Indexing
========

[](#indexing)

Batch Indexing
--------------

[](#batch-indexing)

### How to build indexing jobs

[](#how-to-build-indexing-jobs)

```
flow nodeindexqueue:build --workspace live

```

#### How to process indexing jobs

[](#how-to-process-indexing-jobs)

You can use this CLI command to process indexing job:

```
flow nodeindexqueue:work --queue batch

```

Live Indexing
-------------

[](#live-indexing)

You can disable async live indexing by editing `Settings.yaml`:

```
Flowpack:
  ElasticSearch:
    ContentRepositoryQueueIndexer:
      enableLiveAsyncIndexing: false

```

You can use this CLI command to process indexing job:

```
flow nodeindexqueue:work --queue live

```

Supervisord configuration
=========================

[](#supervisord-configuration)

You can use tools like `supervisord` to manage long running processes. Bellow you can find a basic configuration:

```
[supervisord]

[supervisorctl]

[program:elasticsearch_batch_indexing]
command=php flow nodeindexqueue:work --queue batch
stdout_logfile=AUTO
stderr_logfile=AUTO
numprocs=4
process_name=elasticsearch_batch_indexing_%(process_num)02d
environment=FLOW_CONTEXT="Production"
autostart=true
autorestart=true
stopsignal=QUIT

[program:elasticsearch_live_indexing]
command=php flow nodeindexqueue:work --queue live
stdout_logfile=AUTO
stderr_logfile=AUTO
numprocs=4
process_name=elasticsearch_live_indexing_%(process_num)02d
environment=FLOW_CONTEXT="Production"
autostart=true
autorestart=true
stopsignal=QUIT

```

Update Instructions
===================

[](#update-instructions)

Breaking change after an upgrade to 3.0
---------------------------------------

[](#breaking-change-after-an-upgrade-to-30)

- Previously the Beanstalk queue package was installed by default, this is no longer the case.

Breaking change after an upgrade to 5.0
---------------------------------------

[](#breaking-change-after-an-upgrade-to-50)

- The beanstalk queue configuration is removed. The FakeQueue is used if not configured to another queuing package.

License
-------

[](#license)

Licensed under MIT, see [LICENSE](LICENSE)

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance46

Moderate activity, may be stable

Popularity41

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~111 days

Recently: every ~265 days

Total

33

Last Release

412d ago

Major Versions

3.3.0 → 4.0.02020-03-06

4.0.0 → 5.0.02020-04-15

3.3.1 → 4.0.12020-11-19

4.0.1 → 5.0.12020-11-19

4.0.2 → 5.1.12021-03-04

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/145363?v=4)[ttree](/maintainers/ttree)[@ttree](https://github.com/ttree)

---

Top Contributors

[![johannessteu](https://avatars.githubusercontent.com/u/769789?v=4)](https://github.com/johannessteu "johannessteu (74 commits)")[![dfeyer](https://avatars.githubusercontent.com/u/221173?v=4)](https://github.com/dfeyer "dfeyer (65 commits)")[![daniellienert](https://avatars.githubusercontent.com/u/642226?v=4)](https://github.com/daniellienert "daniellienert (46 commits)")[![kdambekalns](https://avatars.githubusercontent.com/u/95873?v=4)](https://github.com/kdambekalns "kdambekalns (31 commits)")[![gjwnc](https://avatars.githubusercontent.com/u/19683930?v=4)](https://github.com/gjwnc "gjwnc (4 commits)")[![theDex](https://avatars.githubusercontent.com/u/3844381?v=4)](https://github.com/theDex "theDex (2 commits)")[![mireo91](https://avatars.githubusercontent.com/u/3800479?v=4)](https://github.com/mireo91 "mireo91 (2 commits)")[![kitsunet](https://avatars.githubusercontent.com/u/324408?v=4)](https://github.com/kitsunet "kitsunet (1 commits)")[![Nikdro](https://avatars.githubusercontent.com/u/9807101?v=4)](https://github.com/Nikdro "Nikdro (1 commits)")[![peterbucher](https://avatars.githubusercontent.com/u/1229021?v=4)](https://github.com/peterbucher "peterbucher (1 commits)")[![lhortmann](https://avatars.githubusercontent.com/u/31652404?v=4)](https://github.com/lhortmann "lhortmann (1 commits)")

---

Tags

beanstalkdelasticsearchflow-frameworkneoscms

### Embed Badge

![Health badge](/badges/flowpack-elasticsearch-contentrepositoryqueueindexer/health.svg)

```
[![Health](https://phpackages.com/badges/flowpack-elasticsearch-contentrepositoryqueueindexer/health.svg)](https://phpackages.com/packages/flowpack-elasticsearch-contentrepositoryqueueindexer)
```

###  Alternatives

[ruflin/elastica

Elasticsearch Client

2.3k50.4M203](/packages/ruflin-elastica)[opensearch-project/opensearch-php

PHP Client for OpenSearch

15224.3M65](/packages/opensearch-project-opensearch-php)[massive/search-bundle

Massive Search Bundle

721.4M13](/packages/massive-search-bundle)[flowpack/elasticsearch-contentrepositoryadaptor

This package provides functionality for using Elasticsearch on top of Neos.ContentRepository.Search

43385.8k8](/packages/flowpack-elasticsearch-contentrepositoryadaptor)[outl1ne/nova-multiselect-filter

Multiselect filter for Laravel Nova.

45802.7k3](/packages/outl1ne-nova-multiselect-filter)[handcraftedinthealps/zendsearch

a general purpose text search engine written entirely in PHP 5

39921.0k35](/packages/handcraftedinthealps-zendsearch)

PHPackages © 2026

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