vlademon / laravel-scout-sphinx
Laravel Scout Sphinx 驱动器
2.7
2021-09-12 21:19 UTC
Requires
- php: >=7.0
- foolz/sphinxql-query-builder: ^3.0
- laravel/scout: ^5.0|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.5|^8|^9
- roave/security-advisories: dev-latest
README
简介
此包为Laravel Scout提供了使用Sphinx全文搜索引擎进行数据搜索和过滤的高级功能。
安装
Composer
使用以下命令通过Composer安装此包:
composer require wlademon/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
限制来在索引上运行更复杂的查询。例如
$orders = 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许可证下授权