sciku1/laravel-match-against

Laravel 构建器匹配 Eloquent 语法及其相关。

0.1.1 2017-12-18 19:33 UTC

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