diezeel / laravel-scout-sphinx
Laravel Scout Sphinx 驱动程序
2.3.2
2019-11-22 01:16 UTC
Requires
- php: >=7.0
- foolz/sphinxql-query-builder: ^2.0
- laravel/scout: ^5.0|^6.0|^7.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.5
README
这是我为我的项目创建的个人版本!描述可能会稍后更新
简介
此包为Laravel Scout提供了使用Sphinx搜索引擎进行数据搜索和过滤的高级功能。
安装
Composer
使用以下命令通过Composer安装包:
composer require constantable/laravel-scout-sphinx
配置
使用Artisan命令 vendor:publish
发布Scout配置。
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
此命令将scout.php配置文件发布到您的配置目录。编辑此文件以将'sphinxsearch'设置为Scout驱动程序
'driver' => env('SCOUT_DRIVER', 'sphinxsearch'),
并添加默认的Sphinx连接选项
'sphinxsearch' => [ 'host' => env('SPHINX_HOST', 'localhost'), 'port' => env('SPHINX_PORT', '9306'), 'socket' => env('SPHINX_SOCKET'), 'charset' => env('SPHINX_CHARSET'), ],
如果需要,请在.env文件中覆盖这些变量
用法
- 将
Laravel\Scout\Searchable
特性添加到您想要使其可搜索的模型。 - 自定义模型的索引名称和可搜索数据
public function searchableAs() { return 'posts_index'; } public function toSearchableArray() { $array = $this->toArray(); // Customize array... return $array; }
基本搜索
$orders = App\Order::search('Star Trek')->get();
请参阅Scout 文档以获取更多信息。您可以使用回调、设置where子句、orderBy或paginate等在索引上运行更复杂的查询。
$oorders = App\Order::search($keyword, function (SphinxQL $query) { return $query->groupBy('description'); }) ->where('status', 1) ->orderBy('date', 'DESC') ->paginate(20);
注意:仅允许对RT(实时)索引进行Sphinx索引的更改。如果您有索引并且需要更新/删除记录,请定义
public $isRT = true;
模型属性。
鸣谢
许可证
MIT许可证下许可