sciku1 / laravel-match-against
Laravel 构建器匹配 Eloquent 语法及其相关。
0.1.1
2017-12-18 19:33 UTC
Requires
- illuminate/database: 5.*
- illuminate/support: 5.*
This package is not auto-updated.
Last update: 2024-09-29 05:14:41 UTC
README
这是一个简单的宏,用于使用 Eloquent ORM API 进行全文搜索的匹配,目前处于测试阶段。
要求
- Laravel 5.x
- MySQL 3.3+
composer require sciku1/laravel-match-against
Laravel 5.5
完成!
Laravel 5.x
您必须在您的 config/app.php 中注册服务提供者
'providers' => [
...
Sciku1\LaravelMatchAgainst\Providers\MatchAgainstServiceProvider::class,
]
用法
要运行匹配查询,字段必须有一个全文索引,目前只有一种方法可以实现
DB::statement('ALTER TABLE `table_name` ADD FULLTEXT index_name(col1, col2)');
排序
默认行为是排序。例如
Model::match(['col1', 'col2'])->against('search terms')->get();
将生成
SELECT * FROM models ORDER BY (MATCH (col1) AGAINST ('search terms')) DESC, (MATCH (col2) AGAINST ('search terms')) DESC
条件
要限制结果,您必须使用 whereAgainst()
Model::match(['col1', 'col2'])->whereAgainst('search terms')->get();
将生成
SELECT * FROM models WHERE (MATCH (col1) AGAINST ('search terms')) > 0, (MATCH (col2) AGAINST ('search terms')) > 0