larva / laravel-scout-sphinxsearch
Laravel Scout Sphinx 驱动器
1.0.1
2020-09-30 16:16 UTC
Requires
- foolz/sphinxql-query-builder: ^2.0
- illuminate/database: ^5.8 || ^6.0 || ^7.0 || ^8.0
- illuminate/support: ^5.8 || ^6.0 || ^7.0 || ^8.0
- laravel/scout: ^6.0 || ^7.0 || ^8.0
This package is auto-updated.
Last update: 2024-08-29 05:13:10 UTC
README
安装
Composer
使用以下命令通过 Composer 安装包:
composer require larva/laravel-scout-sphinxsearch
配置
使用 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);
注意:Sphinx 索引上的更改仅适用于 RT (实时) 索引。如果您有这些索引并且需要更新/删除记录,请定义模型属性
public $isRT = true;
。