naph/searchlight

适用于 Laravel 5.4+ 的搜索查询语言,支持 Eloquent 和 Elasticsearch

安装次数: 1,710

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

类型:项目

0.6.0 2017-08-24 01:30 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:36 UTC


README

适用于 LaravelElasticsearch 搜索查询语言,具有多模型搜索功能

public function search(Search $search, Comment $comments, Post $posts)
{
    return $search->in($comments, $posts)
        ->match('Searchlight')
        ->get();
}

和内置的限定符减少器。

$driver->qualifier('/#(\w+)/', function (Search $search, $fragment) {
    $search->filter(['tags' => $fragment]);
});

安装

使用 composer

composer require naph/searchlight

注册服务提供者

Naph\Searchlight\SearchlightServiceProvider;

发布包含驱动程序和主机配置的供应商文件。Lumen 用户应复制文件。

php artisan vendor:publish --tag searchlight

通过实现合同/特性对并重写 getSearchableFields 来设置模型。特性将事件绑定到保存和删除,以确保索引与数据库同步。

use Illuminate\Database\Eloquent\Model;
use Naph\Searchlight\Model\SearchlightContract;
use Naph\Searchlight\Model\SearchlightTrait;

class Topic extends Model implements SearchlightContract
{
    use SearchlightTrait;

    public function getSearchableFields(): array
    {
        return [
            'title' => 1,
            'description' => 0.5,
            'content' => 0.1
        ];
    }
}

将此模型的完全限定类名存储在 searchlight.repositories 配置中,确保在运行时构建它们的索引

php artisan searchlight:rebuild

此命令将在过程中销毁所有现有的索引文档。

要求

目前仅支持 PHP7 和 Laravel 及 Lumen 的最新版本。

许可证

Searchlight 是一个开源软件,受 MIT 许可证 许可。