ink / ink-sphinxize
Laravel 4 的 Sphinx 搜索 - InkSphinxize
dev-master
2013-10-19 14:55 UTC
Requires
- php: >=5.4.0
- illuminate/config: 4.0.x
- illuminate/support: 4.0.x
This package is not auto-updated.
Last update: 2024-09-23 15:51:11 UTC
README
Laravel 4 的 Sphinx 搜索 - InkSphinxize
安装
首先,您需要将此包添加到您的 composer.json
文件的 require
属性中
{ "require": { "ink/ink-sphinxize": "dev-master" }, }
然后,从您的命令行运行 composer update
。
接下来,将 'Ink\InkSphinxize\InkSphinxizeServiceProvider',
添加到 app/config/app.php
文件中的服务提供者列表,并将 'InkSphinxizeSearch' => 'Ink\InkSphinxize\Facades\InkSphinxize',
添加到 app/config/app.php
文件中的类别名列表。
再次从命令行运行 php artisan config:publish ink/ink-sphinxize
。
更新您的模型
定义一个私有静态属性 $sphinxize
,包含定义
class Post extends Eloquent { use Ink\InkSphinxize\InkSphinxize; /** * The database table used by the model. * * @var string */ protected $table = 'posts'; /** * InkSphinxize configs * * @var array */ private static $sphinxize = [ 'index' => 'posts', 'pk' => 'id', 'perPage' => 15, ]; }
就这样!
示例
Route::get('/', function()
{
$perPage = 5; // Override $sphinxize perPage value
$ids = Post::ss('Azerbaijan')
->ids()
->skip(5)
->take($perPage)
->get();
// Returns [2, 34, 66, 98, 103, ...]
$records = Post::ss('Azerbaijan')
->limit(0, $perPage)
->get();
// Returns \Illuminate\Database\Eloquent\Collection
$records = Post::ss('Azerbaijan')
->limit(0, $perPage)
->with('category')
->get();
// Returns \Illuminate\Database\Eloquent\Collection with Eager loading
$records = Post::ss('Azerbaijan')
->with(array('category', 'tags' => function($query){
$query->where('name', 'like', '%baku%');
}))
->paginate($perPage);
// Returns \Illuminate\Database\Eloquent\Collection with Eager loading
$paginator = Paginator::make($records->toArray(), count($records->toArray()), $perPage);
// Paginator
dd($records);
});
错误和建议
请使用 Github 报告错误、评论和建议。我们更倾向于接收 Pull requests!
版权和许可
InkSphinxize 由 Orkhan Maharramli 编写,并使用 MIT 许可证发布。有关详细信息,请参阅 LICENSE 文件。
版权 2013 Orkhan Maharramli