gtk / larasearch

一个基于驱动程序的搜索解决方案,用于搜索您的 Eloquent 模型,支持 Laravel 5.2 和 Elasticsearch 引擎。

此包的官方仓库似乎已消失,因此该包已被冻结。

v1.1.5 2017-04-20 10:47 UTC

This package is not auto-updated.

Last update: 2024-06-08 18:05:23 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

介绍

此包是从 Laravel Scout 分支出来的。

Larasearch 基于官方的 Laravel Scout,它提供了一个简单、基于驱动程序的解决方案,用于将全文搜索添加到您的 Eloquent 模型,支持 Laravel 5.2 和 Elasticsearch 引擎。

安装

首先,使用 Composer 包管理器安装 Larasearch

composer require gtk/larasearch

接下来,您应该在 config/app.php 配置文件的 providers 数组中添加 LarasearchServiceProvider

Gtk\Larasearch\LarasearchServiceProvider::class,

注册 Larasearch 服务提供者后,应使用 vendor:publish Artisan 命令发布 Larasearch 配置。此命令会将 larasearch.php 配置文件发布到您的 config 目录

php artisan vendor:publish

最后,将 Gtk\Larasearch\Searchable 特性添加到您想使其可搜索的模型中。此特性将注册一个模型观察者,以保持模型与您的搜索驱动程序同步

<?php

namespace App;

use Gtk\Larasearch\Searchable;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use Searchable;
}

使用 Elastic 搜索

当使用 Elastic 驱动程序时,您应该在 config/larasearch.php 配置文件中配置您的 Elastic indexhosts 凭证。一旦配置了凭证,您还需要通过 Composer 包管理器安装 Elastic PHP SDK

composer require elasticsearch/elasticsearch

您可以使用 search 方法开始搜索一个模型。搜索方法接受一个字符串,该字符串将用于搜索您的模型。然后,您应该在搜索查询上链接 get 方法以检索与给定搜索查询匹配的 Eloquent 模型

$orders = App\Order::search('Star Trek')->get();

由于 Larasearch 搜索返回 Eloquent 模型集合,您甚至可以直接从路由或控制器返回结果,并将它们自动转换为 JSON

use Illuminate\Http\Request;

Route::get('/search', function (Request $request) {
    return App\Order::search($request->search)->get();
});

search 方法还接受一个数组,该数组将用于执行高级搜索。有关更多信息,请参阅 Elastic 文档

$orders = App\Order::search(['query' => ['match' => ['title' => 'Star Trek']]])->get();

许可证

Larasearch 是开源软件,根据 MIT 许可证 发布。