5dmatwebsearch/advancesearch

laravel 的全文搜索...

dev-master 2018-02-09 05:01 UTC

This package is not auto-updated.

Last update: 2024-09-20 09:13:15 UTC


README

描述

laravel 单个或多个字段上的全文搜索

安装

  composer require 5dmatwebsearch/advancesearch:dev-master

添加服务提供者(在 config/app.php 中的 'providers' 部分)

   AdvanceSearch\AdvanceSearchProvider\AdvanceSearchProvider::class,

添加别名(在 config/app.php 中的 'aliases' 部分)

   'Search' => AdvanceSearch\AdvanceSearchProvider\Facades\SearchFacades::class,

添加索引

添加索引到字段

  php artisan index:table table fields

table = 表名
fields = 你可以添加的字段。可以添加一个或多个字段,例如:title,description,tags

示例

  php artisan index:table films title,description

搜索

现在你可以使用搜索功能了

  Search::search(modelName , fields, searchText  ,select , order , pagination , limit)

modelName = 表名
fields = 你可以添加的字段,如 title,description,tags
searchText = 你要查找的文本
select = 你想要返回的字段。你可以返回一个字段,例如:title。或者返回多个,例如:['title' , 'description']
order = 你可以传递一个排序字段,例如:id。或者你可以传递字段和方式,例如:['id' , 'desc']
pagination = 如果你想要启用分页,则为 true;如果不启用,则为 false。默认情况下,包会进行分页
limit = 你想要返回的结果数量。(默认为 10)

第一个示例带有分页

Search::search(
      "Films" ,
      ['title' , 'description'] ,
      "Drama Outback GOLDFINGER"  ,
      ['modelName' , 'title', 'description'],
      ['film_id'  , 'asc'] ,
      true ,
      30
)

第二个示例带有分页

Search::search(
      "Films" ,
      ['title' , 'description'] ,
      "Drama Outback GOLDFINGER"  ,
      ['id' , 'title', 'description'],
     'film_id'  
)

不带分页的示例

Search::search(
      "Films" ,
      ['title' , 'description'] ,
      "Drama Outback GOLDFINGER"  ,
      ['film_id' , 'title', 'description'],
      'film_id',
      false
)->where('film_id' , 10)->get()