eljump / laravel-scout-sphinx
Laravel Scout Sphinx 驱动器
v1.0.0
2023-06-28 13:53 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
This package is auto-updated.
Last update: 2024-09-29 10:35:12 UTC
README
介绍
本包是 constantable/laravel-scout-sphinx 的分支。该包为使用 Sphinx 全文搜索引擎 为 Laravel Scout 提供高级的搜索和过滤数据功能。
安装
Composer
使用以下命令通过 Composer 安装此包:
composer require constantable/laravel-scout-sphinx
配置
使用 vendor:publish
Artisan 命令发布 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 许可证下授权