diezeel/laravel-scout-sphinx

Laravel Scout Sphinx 驱动程序

2.3.2 2019-11-22 01:16 UTC

This package is auto-updated.

Last update: 2024-09-14 23:47:20 UTC


README

这是我为我的项目创建的个人版本!描述可能会稍后更新

Build Status Latest Version on Packagist Software License

简介

此包为Laravel Scout提供了使用Sphinx搜索引擎进行数据搜索和过滤的高级功能。

安装

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等在索引上运行更复杂的查询。

$oorders = 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许可证下许可