larva/laravel-scout-sphinxsearch

Laravel Scout Sphinx 驱动器

1.0.1 2020-09-30 16:16 UTC

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;