constantable / laravel-scout-sphinx
Laravel Scout Sphinx 驱动程序
3.0
2023-09-11 21:11 UTC
Requires
- php: >=7.0
- foolz/sphinxql-query-builder: ^3.0
- laravel/scout: >=5.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.5|^8|^9
- roave/security-advisories: dev-latest
README
介绍
此软件包是 constantable/laravel-scout-sphinx 的分支。该软件包为使用 Sphinx 全文搜索服务器 对 Laravel Scout 进行数据搜索和过滤提供了高级功能。
安装
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
阈值在索引上运行更复杂的查询。例如
$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 许可证许可