sciku1/laravel-match-against

Laravel builder match against eloquent syntax and related.
1,810 6
Install
composer require sciku1/laravel-match-against
Latest Version:0.1.1
License:MIT
Last Updated:Sep 27, 2018
Links: GitHub  ·  Packagist
Maintainer: sciku1

Laravel Match Against

A simple macro for doing match against fulltext searches with the Eloquent ORM api, currently in beta.

Requirements

  • Laravel 5.x
  • MySQL 3.3+

composer require sciku1/laravel-match-against

Laravel 5.5

You're done!

Laravel 5.x

You must register the service provider in your config/app.php

'providers' => [
    ...
    Sciku1\LaravelMatchAgainst\Providers\MatchAgainstServiceProvider::class,
]

Usage

To run match against queries, the field must have a fulltext index, currently there only way to do this is

DB::statement('ALTER TABLE `table_name` ADD FULLTEXT index_name(col1, col2)');

Order

The default behaviour is to order. Example:

Model::match(['col1', 'col2'])->against('search terms')->get();

will generate

SELECT * FROM models ORDER BY (MATCH (col1) AGAINST ('search terms')) DESC, (MATCH (col2) AGAINST ('search terms')) DESC

Where

To limit the results, you must use whereAgainst()

Model::match(['col1', 'col2'])->whereAgainst('search terms')->get();

will generate

SELECT * FROM models WHERE (MATCH (col1) AGAINST ('search terms')) > 0, (MATCH (col2) AGAINST ('search terms')) > 0

Related Packages

kevinsimard/laravel-builder-macros

Laravel builder macros for the Eloquent ORM

351 7
bjerke/api-query-builder

A query builder for Laravel that parses the request and uses Eloquent ORM to que...

7,822 26
nilportugues/serializer-eloquent

Eloquent Driver for NilPortugues Serializer outputting valid API responses in JS...

36,591 5
stevenmaguire/laravel-cache

Seamlessly adding caching to Laravel service objects

1,758 17
jimbolino/laravel-model-builder

builds eloquent models based on the tables and relations found in your mysql dat...

11,719 30