PHPackages                             pr3set-llc/elemental-search - 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. pr3set-llc/elemental-search

ActiveSilverstripe-vendormodule[Search &amp; Filtering](/categories/search)

pr3set-llc/elemental-search
===========================

Full text search for elemental module

6.x-dev(1mo ago)0391BSD-3-ClausePHPPHP ^8.3

Since Oct 12Pushed 1mo agoCompare

[ Source](https://github.com/PR3SET-LLC/elemental-seach)[ Packagist](https://packagist.org/packages/pr3set-llc/elemental-search)[ RSS](/packages/pr3set-llc-elemental-search/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (3)Used By (0)

SilverStripe - Elemental search
===============================

[](#silverstripe---elemental-search)

Introduction
------------

[](#introduction)

This module integrates [dnadesign/silverstripe-elemental](https://github.com/dnadesign/silverstripe-elemental)into [SilverStripe's Fulltext search](https://docs.silverstripe.org/en/4/developer_guides/search/fulltextsearch/)and provides extensions to create search documents for your Pages or any data objects which you need to work with the full text search. The module comes in handy for systems where you dont want to make use of complex search systems like Solr.

Requirements
------------

[](#requirements)

- SilverStripe ^4.0
- Elemental ^2.0

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

[](#installation)

Install with Composer:

```
composer require silverstripers/elemental-search dev-master

```

Ensure you run `dev/build?flush=1` to build your database and flush your cache.

Usage
-----

[](#usage)

### Enable Full text search

[](#enable-full-text-search)

The module once installed elables Full text search by itself on the SearchDocument dataobject. There are no additional configs you want to use.

### Create a search form

[](#create-a-search-form)

Create a search form with the code below and display on a template

```
use SilverStripe\CMS\Search\SearchForm;

class  MyController extends Controller {

   public function SearchForm()
   {
      return SearchForm::create($this, 'SearchForm');
   }

   public function results($data, $form, $request)
    {
        $data = array(
            'Results' => $form->getResults(),
            'Query' => DBField::create_field('Text', $form->getSearchQuery()),
            'Title' => _t('SilverStripe\\CMS\\Search\\SearchForm.SearchResults', 'Search Results')
        );
        return $this->owner->customise($data)->renderWith(array('Page_results', 'Page'));
    }

}

```

### Include objects to search.

[](#include-objects-to-search)

Any data object you'd like to include in the search has to be decorated with the `SilverStripers\ElementalSearch\Extensions\SearchDocumentGenerator`. After doing this this extension will make a search document each time when the data object is created, updated, and when deleted it will delete the search document. For Versioned data objects it will only create search documents when the object is published.

### Specify which contents needs to be searched.

[](#specify-which-contents-needs-to-be-searched)

For the webpages you have the option to configure which dom elements to include in the search. Eg: You wont need it to cache the whole page and run search on certain info which duplicates over the site like the navigations.

```
SilverStripers\ElementalSearch\Model\SearchDocument:
    search_x_path:
        - main-content

```

In the situation where you have content outside of elemental elements that you want to include in the search.

```
SilverStripers\ElementalSearch\Model\SearchDocument:
    only_use_x_path: true

```

The above settings will render the page and exract content within the `main-content` DOM node, and create the document.

How it works
------------

[](#how-it-works)

The module adds a new DataObject `SearchDocument`. This gets created when each of the search enabled pages. And it is how it creates aggregated search results.

The module overrides the MySQLDatabase and the search result queries.

Reporting Issues
----------------

[](#reporting-issues)

Please [create an issue](https://github.com/SilverStripers/elemental-seach/issues) for any bugs, or submit merge requests.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance90

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 66.7% 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 ~214 days

Total

2

Last Release

49d ago

Major Versions

5.x-dev → 6.x-dev2026-05-14

### Community

Maintainers

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

---

Top Contributors

[![fonsekaean](https://avatars.githubusercontent.com/u/143939?v=4)](https://github.com/fonsekaean "fonsekaean (50 commits)")[![juangadiel](https://avatars.githubusercontent.com/u/706997?v=4)](https://github.com/juangadiel "juangadiel (11 commits)")[![roshansilverstripers](https://avatars.githubusercontent.com/u/53742423?v=4)](https://github.com/roshansilverstripers "roshansilverstripers (4 commits)")[![muskie9](https://avatars.githubusercontent.com/u/870751?v=4)](https://github.com/muskie9 "muskie9 (4 commits)")[![juangadiel-pr3set](https://avatars.githubusercontent.com/u/231773882?v=4)](https://github.com/juangadiel-pr3set "juangadiel-pr3set (3 commits)")[![sheadawson](https://avatars.githubusercontent.com/u/1166136?v=4)](https://github.com/sheadawson "sheadawson (1 commits)")[![prameshharshana3](https://avatars.githubusercontent.com/u/17820656?v=4)](https://github.com/prameshharshana3 "prameshharshana3 (1 commits)")[![RobertLeCreux](https://avatars.githubusercontent.com/u/25985906?v=4)](https://github.com/RobertLeCreux "RobertLeCreux (1 commits)")

---

Tags

searchsilverstripeelementalfull-text

### Embed Badge

![Health badge](/badges/pr3set-llc-elemental-search/health.svg)

```
[![Health](https://phpackages.com/badges/pr3set-llc-elemental-search/health.svg)](https://phpackages.com/packages/pr3set-llc-elemental-search)
```

###  Alternatives

[silverstripe/solr

Solr integration for SilverStripe. Note that this is NOT related to the silverstripe/fulltext package.

1914.0k](/packages/silverstripe-solr)

PHPackages © 2026

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