PHPackages                             ritey/laravel-manticore - 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. ritey/laravel-manticore

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

ritey/laravel-manticore
=======================

Laravel Scout driver for Manticore Search with support for vector search, hybrid queries, and JSON filters.

v2.0.4(1y ago)183MITPHPPHP ^7.4|^8.0CI passing

Since Apr 1Pushed 1y ago2 watchersCompare

[ Source](https://github.com/ritey/laravel-manticore)[ Packagist](https://packagist.org/packages/ritey/laravel-manticore)[ RSS](/packages/ritey-laravel-manticore/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (29)Used By (0)

Laravel Manticore Scout
=======================

[](#laravel-manticore-scout)

A Laravel Scout engine for [Manticore Search](https://manticoresearch.com), supporting:

- ✅ Full-text search
- ✅ Vector similarity search
- ✅ JSON field filters
- ✅ Field boosting
- ✅ Hybrid search (vector + full-text)
- ✅ Pagination and sorting
- ✅ Artisan commands to manage Manticore indexes

---

🔧 Installation
--------------

[](#-installation)

```
composer require ritey/laravel-manticore
```

Publish the config file (optional):

```
php artisan vendor:publish --tag=config
```

---

⚙️ Configuration
----------------

[](#️-configuration)

In `config/scout.php`:

```
'driver' => 'manticore',
```

In `.env` or `config/laravel_manticore.php`:

```
LARAVEL_MANTICORE_HOST=127.0.0.1
LARAVEL_MANTICORE_PORT=9308
LARAVEL_MANTICORE_DEBUG=true
```

---

🏗 Making a Model Searchable
---------------------------

[](#-making-a-model-searchable)

```
use Laravel\Scout\Searchable;

class Post extends Model
{
    use Searchable;

    public function searchableAs(): string
    {
        return 'posts_index';
    }

    public function toSearchableArray(): array
    {
        return [
            'title' => $this->title,
            'body' => $this->body,
            'metadata' => $this->metadata,
            'embedding' => $this->embedding,
        ];
    }
}
```

---

🛠 Index Management
------------------

[](#-index-management)

Run once per model to initialize index:

```
php artisan manticore:create-index "App\Models\Post"
```

To sync field types after changes:

```
php artisan manticore:sync-index "App\Models\Post"
```

// Before running search, make sure your index is populated: php artisan scout:import "App\\Models\\Post"

---

🔍 Basic Search Example
----------------------

[](#-basic-search-example)

```
Post::search('open education')->get();
```

---

🚀 Advanced Search
-----------------

[](#-advanced-search)

### With vector + filters

[](#with-vector--filters)

```
use Ritey\LaravelManticore\FilterBuilder;

$filters = (new FilterBuilder)
    ->where('metadata.topic', 'ai')
    ->whereRange('score', ['gte' => 0.6]);

Post::search('ai in education')
    ->tap(function ($builder) use ($filters, $vector) {
        $builder->vector = $vector;
        $builder->filterBuilder = $filters;
        $builder->similarity = 'cosine';
    })
    ->get();
```

### Sorting

[](#sorting)

```
Post::search('ai')
    ->tap(fn($b) => $b->sort = [['score' => 'desc']])
    ->get();
```

### Boosting Fields

[](#boosting-fields)

```
Post::search('language learning')
    ->tap(fn($b) => $b->boosts = ['title' => 2.0, 'body' => 1.0])
    ->get();
```

---

📊 Facets
--------

[](#-facets)

```
Post::search('climate')
    ->tap(fn($b) => $b->facets = ['metadata.topic'])
    ->get();
```

---

💡 Highlighting (Default Enabled)
--------------------------------

[](#-highlighting-default-enabled)

Results include highlighting in `highlight` key.

---

🧪 Debugging
-----------

[](#-debugging)

Enable logging by setting:

```
LARAVEL_MANTICORE_DEBUG=true
```

Laravel will log connection config to the default logger.

---

📄 License
---------

[](#-license)

MIT License. (c) Ritey

---

🛠 Programmatic Index Management (Scout 10+)
-------------------------------------------

[](#-programmatic-index-management-scout-10)

In addition to Artisan commands, indexes can be created or deleted via Laravel Scout:

```
use Laravel\Scout\EngineManager;

$engine = resolve(EngineManager::class)->engine('manticore');
$engine->createIndex('posts_index');
$engine->deleteIndex('posts_index');
```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance47

Moderate activity, may be stable

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity53

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

Every ~1 days

Total

28

Last Release

397d ago

Major Versions

v1.0.4.8 → v2.0.02025-04-15

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

jsonsearchlaravelaivectornlpscoutmanticore

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ritey-laravel-manticore/health.svg)

```
[![Health](https://phpackages.com/badges/ritey-laravel-manticore/health.svg)](https://phpackages.com/packages/ritey-laravel-manticore)
```

###  Alternatives

[teamtnt/laravel-scout-tntsearch-driver

Driver for Laravel Scout search package based on https://github.com/teamtnt/tntsearch

1.1k2.5M28](/packages/teamtnt-laravel-scout-tntsearch-driver)[algolia/scout-extended

Scout Extended extends Laravel Scout adding algolia-specific features

4186.3M6](/packages/algolia-scout-extended)[jeroen-g/explorer

Next-gen Elasticsearch driver for Laravel Scout.

397612.3k](/packages/jeroen-g-explorer)[romanstruk/manticore-scout-engine

Laravel Manticore Scout Engine

4818.1k](/packages/romanstruk-manticore-scout-engine)[zing/laravel-scout-opensearch

Laravel Scout custom engine for OpenSearch

33340.2k](/packages/zing-laravel-scout-opensearch)

PHPackages © 2026

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