PHPackages                             jdz/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. jdz/search

ActiveLibrary[Search &amp; Filtering](/categories/search)

jdz/search
==========

Site search library with text isolation and highlighting

1.0.0(1mo ago)03↓66.7%MITPHPPHP &gt;=8.2

Since Jul 6Pushed 1mo agoCompare

[ Source](https://github.com/joffreydemetz/search)[ Packagist](https://packagist.org/packages/jdz/search)[ Docs](https://jdz.joffreydemetz.com/search)[ RSS](/packages/jdz-search/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

JDZ Search
==========

[](#jdz-search)

Site search library with text isolation and highlighting.

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

[](#installation)

```
composer require jdz/search
```

Components
----------

[](#components)

- **Searcher** — Abstract base class for building component-specific searchers
- **SearcherInterface** — Contract for searcher implementations
- **SearchRepository** — Logs search terms and tracks hit counts
- **Isolator** — Extracts and highlights matching text from HTML content
- **Pagination** — Calculates page navigation for search results

Usage
-----

[](#usage)

Create a concrete searcher by extending `JDZ\Search\Searcher`:

```
use JDZ\Search\Searcher;
use JDZ\Database\Query\SelectQuery;

class BlogSearcher extends Searcher
{
    protected string $name = 'blog';
    protected array $fields = ['blog.title', 'blog.content'];

    public function makeQuery(SelectQuery $query): void
    {
        $query
            ->select('DISTINCT(blog.id), blog.title, blog.content')
            ->from('#__blog AS blog')
            ->where('blog.published IS NOT NULL');

        parent::makeQuery($query);
    }
}
```

License
-------

[](#license)

MIT

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance90

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

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

Unknown

Total

1

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5e83e3701566e43438525ed14578487e732b849d152b5071aa1613a0dad96913?d=identicon)[jdz](/maintainers/jdz)

---

Top Contributors

[![joffreydemetz](https://avatars.githubusercontent.com/u/15113527?v=4)](https://github.com/joffreydemetz "joffreydemetz (4 commits)")

---

Tags

contentJDZ

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jdz-search/health.svg)

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

###  Alternatives

[netgen/query-translator

Query Translator is a search query translator with AST representation

2062.1M9](/packages/netgen-query-translator)[fran6co/phptrie

PHP Trie implementation

3418.9k](/packages/fran6co-phptrie)[imarc/google-site-search

A PHP Interface to the Google Custom Search API

3011.6k](/packages/imarc-google-site-search)[dialekt/dialekt

A boolean expression DSL.

173.8k](/packages/dialekt-dialekt)

PHPackages © 2026

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