vlademon/laravel-scout-sphinx

Laravel Scout Sphinx 驱动器

2.7 2021-09-12 21:19 UTC

This package is auto-updated.

Last update: 2024-09-06 19:03:57 UTC


README

Build Status Latest Version on Packagist Software License

简介

此包为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 子句、orderBypaginate 限制来在索引上运行更复杂的查询。例如

$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许可证下授权