gtk / larasearch
一个基于驱动程序的搜索解决方案,用于搜索您的 Eloquent 模型,支持 Laravel 5.2 和 Elasticsearch 引擎。
此包的官方仓库似乎已消失,因此该包已被冻结。
Requires
- php: >=5.5.9
- illuminate/bus: ^5.2
- illuminate/contracts: ^5.2
- illuminate/database: ^5.2
- illuminate/pagination: ^5.2
- illuminate/queue: ^5.2
- illuminate/support: ^5.2
Requires (Dev)
- algolia/algoliasearch-client-php: ^1.10
- elasticsearch/elasticsearch: ~2.0
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.8
Suggests
- algolia/algoliasearch-client-php: Required to use the Algolia engine.
- elasticsearch/elasticsearch: Required to use the Elasticsearch engine.
This package is not auto-updated.
Last update: 2024-06-08 18:05:23 UTC
README
介绍
此包是从 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 index
和 hosts
凭证。一旦配置了凭证,您还需要通过 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 许可证 发布。