PHPackages                             sitegeist/taxonomy-elasticsearch - 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. sitegeist/taxonomy-elasticsearch

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

sitegeist/taxonomy-elasticsearch
================================

412.3k↓35.7%2PHP

Since Apr 1Pushed 4y ago3 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.Taxonomy.ElasticSearch)[ Packagist](https://packagist.org/packages/sitegeist/taxonomy-elasticsearch)[ RSS](/packages/sitegeist-taxonomy-elasticsearch/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Sitegeist.Taxonomy.ElasticSearch
================================

[](#sitegeisttaxonomyelasticsearch)

> elastic search integration for Sitegeist.Taxonomy

This package configures the elastic search indexing of taxonomy nodes and provides an EEL helper for custom indexing configurations. It also provides an EEL helper for taxonomy-aware elastic search querying.

Status
------

[](#status)

**This is currently experimental code so do not rely on any part of this.**

### Authors &amp; Sponsors

[](#authors--sponsors)

- Martin Ficzel -

*The development and the public-releases of this package is generously sponsored by our employer .*

EEL-Helpers
-----------

[](#eel-helpers)

### TaxonomyIndexing

[](#taxonomyindexing)

- `TaxonomyIndexing.extractIdentifierAndParentIdentifiers()` Get an array of taxon identifiers including all parent taxons for the given taxon nodes

### TaxonomySearch

[](#taxonomysearch)

Find taxonomies that match the fulltext query.

```
# Build searchQuery
searchQuery = ${Search.query( Taxonomy.root() ).fulltext( searchTerm ).nodeType('Sitegeist.Taxonomy:Taxonomy')}

# Number of serach results
totalSearchResults = ${this.searchQuery.count()}

# Execute query
searchResults = ${this.searchQuery.execute()}

```

Often you want to combine the search for taxons with the document serach. This examples will find results that match the term via fulltext or that are referencing a taxonomies that matched the fulltext.

```
# Array with IDs of taxonomies that match the term
@context.taxonomyIds = ${this.taxonomies}
@context.taxonomyIds.@process.convertToIds = Neos.Fusion:RawCollection {
    collection = ${Search.query( Taxonomy.root() ).fulltext( searchTerm ).nodeType('Sitegeist.Taxonomy:Taxonomy').execute().toArray()}
    itemName = 'taxon'
    itemRenderer = ${q(taxon).property('_identifier')}
}

# Find documents that either match fulltext or are assigned to a taxon that matched

# Build searchQuery
searchQuery = ${Search.query(site).nodeType('Neos.Neos:Document').limit(100)}

# Append setting to get results with a minimum match of 1
searchQuery.@process.setMinimumShouldMatch = ${value.request('query.filtered.query.bool.minimum_should_match', 1)}

# Append query with fulltext string search term
searchQuery.@process.setTermCondition = ${value.request('query.filtered.query.bool.should', [{'query_string': {'query': searchTerm}}])}

# Append query with search by taxonomy (if any)
searchQuery.@process.setTaxonomyCondition = ${value.appendAtPath('query.filtered.query.bool.should', {'terms': {'taxonomyReferences':taxonomyIds}})}
searchQuery.@process.setTaxonomyCondition.@if.has = ${taxonomyIds ? true : false}

# Number of serach results
totalSearchResults = ${this.searchQuery.count()}

# Execute query
searchResults = ${this.searchQuery.execute()}

```

Indexing of Taxonomies
----------------------

[](#indexing-of-taxonomies)

The title and description field of taxonomies are added to the fulltext index.

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

License
-------

[](#license)

See [LICENSE](./LICENSE)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity26

Early-stage or recently created project

 Bus Factor1

Top contributor holds 83.3% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (20 commits)")[![grebaldi](https://avatars.githubusercontent.com/u/2522299?v=4)](https://github.com/grebaldi "grebaldi (4 commits)")

---

Tags

elasticsearchneoscms

### Embed Badge

![Health badge](/badges/sitegeist-taxonomy-elasticsearch/health.svg)

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

###  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)[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

934529.3k2](/packages/mailerlite-laravel-elasticsearch)[massive/search-bundle

Massive Search Bundle

721.4M13](/packages/massive-search-bundle)[shyim/opensearch-php-dsl

OpenSearch/Elasticsearch DSL library

175.9M9](/packages/shyim-opensearch-php-dsl)[outl1ne/nova-multiselect-filter

Multiselect filter for Laravel Nova.

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

PHPackages © 2026

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