shokme / laravel-scout-meilisearch
该包已被弃用,不再维护。作者建议使用 https://github.com/meilisearch/meilisearch-laravel-scout 包。
MeiliSearch 的 Laravel Scout 定制引擎
v1.0.0
2020-04-16 14:47 UTC
Requires
- php: ^7.4
- laravel/scout: ^8.0
- meilisearch/meilisearch-php: ^0.9.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2020-04-18 18:18:54 UTC
README
MeiliSearch 的 Laravel scout 包。
MeiliSearch 提供了一个超相关的即时全文搜索。我们的解决方案是开源的,您可以在这里查看我们的仓库。
这里是 MeiliSearch 文档 📖
目录
安装
Composer
$ composer require meilisearch/meilisearch-laravel-scout
导出配置
$ php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider" $ php artisan vendor:publish --provider="Meilisearch\Scout\MeilisearchServiceProvider" --tag="config"
更新 .env
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=masterKey
运行 MeiliSearch
有许多简单的方法可以 下载并运行 MeiliSearch 实例。
例如,如果您使用 Docker
$ docker run -it --rm -p 7700:7700 getmeili/meilisearch:latest ./meilisearch --master-key=masterKey
NB:您也可以从 Homebrew 或 APT 下载 MeiliSearch。
入门
索引
创建索引
// Create an index $ php artisan scout:index books // Create an index and give the primary-key $ php artisan scout:index books --key book_id
添加文档
<?php use Laravel\Scout\Searchable; class Book extends Model { use Searchable; }
<?php class BookController extends Controller { public function store() { $book = new Book(); $book->title = 'Pride and Prejudice'; ... $book->save(); } }
您还可以使用 artisan 命令将所有表格导入 meilisearch
$ php artisan scout:import "App\Book"
在索引中搜索
class BookController extends Controller { public function search() { // MeiliSearch is typo-tolerant: Book::search('harry pottre')->get(); // Or if you want to get the result from meilisearch: Book::search('harry pottre')->raw(); } }
删除文档
class BookController extends Controller { public function destroy($id) { // Delete one document Book::find($id)->delete(); // Delete several documents Book::destroy([1, 42]); // Delete all documents /!\ Book::query()->delete(); } }
或者您可以使用 artisan 命令从索引中删除所有文档
$ php artisan scout:flush "App\Book"
删除索引
$ php artisan scout:index -d books
搜索
自定义搜索
所有支持选项的描述见 本节文档。
class BookController extends Controller { public function customSearch() { Book::search('prince', function (Index $meilisearch, $query, $options) { $options['filters'] = 'author="Antoine de Saint-Exupéry"'; return $meilisearch->search($query, $options); })->limit(3)->get(); } }
分页
class BookController extends Controller { public function search() { Book::search('mustang')->paginate(); // with a limit of items per page: Book::search('mustang')->paginate(5); // using meilisearch response: Book::search('mustang')->paginateRaw(); } }
与 MeiliSearch 的兼容性
此包适用于 MeiliSearch >=v0.10
。
附加说明
您可以通过阅读MeiliSearch PHP 客户端的文档来使用更高级的功能。
此包是Laravel Scout的自定义引擎。