PHPackages                             vanry/laravel-scout-tntsearch - 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. vanry/laravel-scout-tntsearch

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

vanry/laravel-scout-tntsearch
=============================

包含中文分词的 Laravel Scout TNTSearch 驱动，支持 scws, phpanalysis 和 jieba 分词。

2.4.0(4y ago)17811.8k34[2 issues](https://github.com/vanry/laravel-scout-tntsearch/issues)1MITPHPPHP ^7.0|^8.0CI failing

Since Sep 25Pushed 4y ago6 watchersCompare

[ Source](https://github.com/vanry/laravel-scout-tntsearch)[ Packagist](https://packagist.org/packages/vanry/laravel-scout-tntsearch)[ RSS](/packages/vanry-laravel-scout-tntsearch/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (25)Used By (1)

> 说明: `2.x` 版本只支持 `Laravel 5.5` 以上版本，`Laravel 5.5`以下版本请使用 [1.x版本](https://github.com/vanry/laravel-scout-tntsearch/tree/1.x)。

安装
--

[](#安装)

> 需安装并开启 `sqlite` 扩展

```
composer require vanry/laravel-scout-tntsearch
```

### Laravel

[](#laravel)

- 发布 `scout` 配置文件，已安装 `scout` 可省略。

```
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
```

- 如需修改 `tntsearch` 默认配置，发布 `tntsearch` 配置文件。

```
php artisan vendor:publish --provider="Vanry\Scout\TNTSearchScoutServiceProvider"
```

### Lumen

[](#lumen)

`Lumen` 需将服务提供者添加到 `bootstrap/app.php`

```
// bootstrap/app.php

// 取消注释
$app->withFacades();
$app->withEloquent()

// 注意先后顺序
$app->register(Vanry\Scout\LumenServiceProvider::class);
$app->register(Laravel\Scout\ScoutServiceProvider::class);
```

在根目录中创建 `config` 文件夹， 将 `laravel scout` 配置文件 `scout.php` 复制到 `config` 中。

如需修改 `tntsearch` 默认配置，则将配置文件 `tntsearch.php` 复制 `config` 中进行修改。

### 启用

[](#启用)

在 `.env` 文件中添加

```
SCOUT_DRIVER=tntsearch
```

用法
--

[](#用法)

1. 模型添加 `Searchable Trait`

```
namespace App;

use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;

class Post extends Model
{
    use Searchable;

    /**
     * Get the indexable data array for the model.
     *
     * @return array
     */
    public function toSearchableArray()
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'body' => strip_tags($this->body),
        ];
    }
}
```

2. 导入模型 创建索引

```
# scout 命令
php artisan scout:import 'App\Post'

# tntsearch 命令, 性能更好
php artisan tntsearch:import 'App\Post'
```

3. 使用索引进行搜索

```
Post::search('laravel教程')->get();
```

中文分词
----

[](#中文分词)

目前支持 `scws`, `jieba` 和 `phpanalysis` 中文分词，默认使用 `phpanalysis` 分词。

### 对比

[](#对比)

- `scws` 是用 `C` 语言编写的 `php` 扩展，性能最好，分词效果好，但不支持 `Windows` 系统。
- `jieba` 为 `python` 版本结巴分词的 `php` 实现，分词效果最好，尤其是新词发现，不足之处是性能较差，占用内存大。
- `phpanalysis` 是 `php` 编写的一款轻量分词器，分词效果不错，性能介于 `scws` 和 `jieba` 两者之间。

### 安装

[](#安装-1)

使用 `scws` 或者 `jieba`，需安装对应的分词驱动。

- **scws**

```
composer require vanry/scws
```

- **jieba**

```
composer require fukuball/jieba-php
```

在 `.env` 文件中配置

```
# scws
TNTSEARCH_TOKENIZER=scws

# jieba
TNTSEARCH_TOKENIZER=jieba
```

### 问题

[](#问题)

使用 `jieba` 分词可能会出现内存分配不足的错误信息:

> PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)

在代码中增加内存限制即可

```
ini_set('memory_limit', '1024M');
```

高亮
--

[](#高亮)

默认使用 `em` 作为高亮 `html` 标签，在 `css` 中设置高亮样式即可，也可以自定义高亮标签。

- **@highlight 指令**

```
@highlight($text, $query, $tag);

```

> - $text: 要高亮的字段
> - $query: 搜索词
> - $tag: 高亮的 html 标签

```
// 高亮 title 字段
@highlight($post->title, $query);

// 用 strong 作为高亮标签
@highlight($post->title, $query, 'strong');
```

- **highlight 帮助函数**

```
highlight($post->title, $query);

highlight($post->title, $query, 'strong');
```

- **Highlighter 对象**

```
use Vanry\Scout\Highlighter;

// ...

app(Highlighter::class)->highlight($post->title, $query);
```

> `highlight` 帮助函数和 `Highlighter` 对象适合在 `api` 等非 `html` 视图中使用。

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity42

Moderate usage in the ecosystem

Community21

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

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

###  Release Activity

Cadence

Every ~66 days

Recently: every ~95 days

Total

24

Last Release

1635d ago

Major Versions

1.4.0 → 2.0.02020-02-23

1.4.1 → 2.2.12020-08-03

PHP version history (3 changes)1.0.0PHP &gt;=5.6.4

1.4.0PHP &gt;=7.0

2.3.4PHP ^7.0|^8.0

### Community

Maintainers

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

---

Top Contributors

[![vanry](https://avatars.githubusercontent.com/u/5253239?v=4)](https://github.com/vanry "vanry (77 commits)")[![baijunyao](https://avatars.githubusercontent.com/u/9360694?v=4)](https://github.com/baijunyao "baijunyao (2 commits)")[![gary101](https://avatars.githubusercontent.com/u/20257102?v=4)](https://github.com/gary101 "gary101 (1 commits)")

---

Tags

laravelscouttntsearchsearchlaravelscouttntsearch

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/vanry-laravel-scout-tntsearch/health.svg)

```
[![Health](https://phpackages.com/badges/vanry-laravel-scout-tntsearch/health.svg)](https://phpackages.com/packages/vanry-laravel-scout-tntsearch)
```

###  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)[cloudmediasolutions/laravel-scout-opensearch

OpenSearch engine for Laravel Scout

1824.4k](/packages/cloudmediasolutions-laravel-scout-opensearch)

PHPackages © 2026

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