PHPackages                             antsfree/mxusearch - 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. antsfree/mxusearch

ActivePath

antsfree/mxusearch
==================

this is mxu fulltext search application.

0.1.4(8y ago)413.9k↓100%6[1 issues](https://github.com/antsfree/mxusearch/issues)PHP

Since Oct 27Pushed 7y agoCompare

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

READMEChangelogDependenciesVersions (3)Used By (0)

基于讯搜服务封装的全文检索服务(for laravel)
----------------------------

[](#基于讯搜服务封装的全文检索服务for-laravel)

### 服务说明

[](#服务说明)

> 全文检索服务是基于开源项目`xunsearch`封装的全文搜索引擎，服务仍在完善。

### 服务安装配置

[](#服务安装配置)

**1.** 通过`composer` 安装搜索服务, 输入如下命令安装最新版本.

```
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'

```

**2.** 在 config/app.php 的服务数组 providers 中添加以下服务.

```
Antsfree\Mxusearch\MxusearchProvider::class

```

**3.** 在 config/app.php 的门面数组 aliases 中添加以下门面.

```
'Mxusearch' => Antsfree\Mxusearch\Mxusearch::class,

```

**4.** 执行如下命令, 配置`mxusearch.php`配置文件；

```
php artisan vendor:publish --provider="Antsfree\Mxusearch\MxusearchProvider"

```

**5.** 分布式安装，各自`laravel`项目需要配置以下`env`参数：

env配置中文释义默认值MXUSEARCH\_PROJECT索引库名mxu\_projectMXUSEARCH\_CHARSET字符编码utf-8MXUSEARCH\_INDEX\_HOST索引服务器IP127.0.0.1(分布式部署配置详见“注意”)MXUSEARCH\_INDEX\_PORT索引端口8383MXUSEARCH\_SEARCH\_HOST搜索服务器IP127.0.0.1(分布式部署配置详见“注意”)MXUSEARCH\_SEARCH\_PORT搜索端口8384MXUSEARCH\_INIINI配置文件名mxusearch.ini> 注意：以上配置全都有默认值，其中索引、搜索的host在分布式部署上需要注意区分。统一指向讯搜服务所在服务器。

**6.** 执行`console`命令，生成`ini`文件

```
php artisan search:reset-ini

```

### 基本服务方法设定

[](#基本服务方法设定)

序号方法名称中文释义备注1addIndex创建索引单条支持即时同步，多条存在时间误差，具体在2~3分钟，视具体情况2deleteIndex删除索引单条多条立即生效，无延迟4searchIndex查找索引支持setFuzzy模糊查询，支持特定字段定向查询（column:key）5cleanIndex清空索引立即生效，无延迟6rebuildIndex重建索引暂不支持7getIndexCount获取索引总数8checkServer检测全文检索服务状态直接输出当前状态及索引条数9flushIndex强制刷新搜索日志10getHotWords获取热门搜索词11getMatchNum获取索引匹配数量12flushIndex强制刷新索引强制刷新实现索引的即加即搜13flushLogging强制刷新搜索日志14checkServer讯搜服务状态检测15getKeyWords文本分词功能16resetIniFile重置INI文件方法17multiSearch多条件查询### Artisan命令服务

[](#artisan命令服务)

提供 artisan 的命令实现 :

序号artisan命令console释义备注1search:add创建索引单条支持即时同步，多条存在时间误差，具体在2~3分钟，视具体情况2search:delete删除索引单条多条立即生效，无延迟3search:search查找索引终端交互，可选择匹配范围4search:clear清空索引立即生效，无延迟5search:check-server检测全文检索服务状态直接输出当前状态及索引条数6search:flush强制刷新索引及搜索日志默认为异步创建索引，强制刷新实现索引的即加即搜7search:scws文本分词命令8search:reset-ini重置ini文件根据配置项重新配置INI文件9search:list-hotwords查看热词列表命令行直接输出### ini配置

[](#ini配置)

1、 `ini`配置文件：`mxu-backend/config/mxusearch.ini` ;

2、 服务器配置

```
project.name = {{MXUSEARCH_PROJECT}}// 项目名称
project.default_charset = {{MXUSEARCH_CHARSET}}// 字符编码
server.index = {{MXUSEARCH_INDEX_HOST}}:{{MXUSEARCH_INDEX_PORT}}// 索引服务端配置(Host&端口)
server.search = {{MXUSEARCH_SEARCH_HOST}}:{{MXUSEARCH_SEARCH_PORT}}// 搜索服务端配置(Host&端口)

```

3、索引字段配置

```
[id]
type = id
tokenizer = full

[column_id]
tokenizer = full
index = self

......
......

```

### 方法说明

[](#方法说明)

#### multiSearch（多条件查询）

[](#multisearch多条件查询)

**方法示例**

```
/**
 * 多条件查询功能
 *
 * @param        $keyword
 * @param string $field
 * @param array  $other_field_value
 * @param array  $range
 * @param int    $limit
 * @param int    $page
 * @param array  $sorts
 *
 * @return array
 */
public function multiSearch($keyword, $field = '', array $other_field_value = [], array $range = [], $limit = 0, $page = 1, array $sorts = []);

```

**请求参数**

参数名类型参数说明必填备注$keywordstring关键词N$fieldstring字段名N默认null，表示全文匹配$other\_field\_valuearray其他多条件参数N默认空数组$rangearray区间条件筛选N$limitint分页参数N默认10条$pageint分页参数N默认1$sortsarray排序条件N默认空**请求示例**

```
$key = '我是关键词';
$field = 'title';
// 多条件
$other_field_value = [
	'site_id'   => 1,
	'column_id' => 2,
	'type'      => 'article',
	// ...
];
$range = [
    [
    	'field' => 'publish_time',
    	'from'  => '2017-10-18 12:07:26',
    	'to'    => '2017-10-23 17:07:26',
    ],
    // ...
];
// 分页控制
$limit = 10;
$page = 1;
// 排序条件(true 为正序, false 为倒序)
$sorts = [
    'field_1' => true, // 根据 field_1 正序排序
    'field_2' => false // 根据 field_2 倒序排序
];

// 调用服务
Mxusearch::multiSearch($key, $field, $other_field, $range, $limit, $page, $sorts);

```

### 索引管理注意事项：

[](#索引管理注意事项)

1. 索引更新：多条同时更新存在时间误差，具体时长和需要创建的索引数量有关系，具体在`2~4分钟`能实现索引的更新；
2. 索引创建：多条同时新增存在时间误差，具体时长和需要创建的索引数量有关系，具体在`2~4分钟`能实现索引的创建；
3. 当前只支持单库存储；
4. ini配置默认存于`laravel config`目录中；

### TODO List

[](#todo-list)

1. 增加热词删除服务;
2. 重构或者优化高级搜索服务,支持搜索条件/类型可扩展;

### 讯搜服务官方SDK参考

[](#讯搜服务官方sdk参考)

[讯搜 SDK 指南](http://www.xunsearch.com/doc/php/guide/start.overview)

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

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

3117d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/592f50ce680804074d67f8e5ea218d10ca4122c9823ec78763e05c41b91d1295?d=identicon)[antsfree](/maintainers/antsfree)

---

Top Contributors

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

---

Tags

full-text-searchlaravelxunsearch

### Embed Badge

![Health badge](/badges/antsfree-mxusearch/health.svg)

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

PHPackages © 2026

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