areirei/ meilisearch-laravel-scout
Laravel Scout 自定义引擎用于 MeiliSearch
Requires
- php: ^7.3|^8.0
- http-interop/http-factory-guzzle: ^1.0
- laravel/scout: ^8.0
- meilisearch/meilisearch-php: ^0.20
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- guzzlehttp/guzzle: ^7.2
- mockery/mockery: ^1.3
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^8.5|^9.5
README
[已弃用] MeiliSearch Laravel Scout
MeiliSearch | 文档 | Slack | 路线图 | 网站 | FAQ
⚡ MeiliSearch 的 Laravel Scout 驱动程序
⚠️ 此包已弃用。我们建议您使用现在支持 MeiliSearch 的 Laravel Scout。
MeiliSearch Laravel Scout 是 Laravel 的 MeiliSearch 驱动程序。
MeiliSearch 是一个开源搜索引擎。了解 MeiliSearch 是什么!
目录
📖 文档
还可以查看此存储库的 Wiki!
🔧 安装
安装插件
composer require areirei/meilisearch-laravel-scout
安装 HTTP 客户端
您可以使用任何 PSR-18 兼容的客户端来使用此 SDK。无需其他配置。
兼容的 HTTP 客户端和客户端适配器列表可在 php-http.org 找到。
如果您使用 Laravel 8,则可以跳过此部分,因为 laravel 默认预安装了 Guzzle 7。
Guzzle 7
composer require guzzlehttp/guzzle
如果您已经安装了 guzzle 且版本小于 7,请勿忘记更新 composer.json 中的版本。
"require": { "guzzlehttp/guzzle": "^7.0" }
Guzzle 6
composer require php-http/guzzle6-adapter
Symfony Http Client
composer require symfony/http-client nyholm/psr7
Curl
composer require php-http/curl-client nyholm/psr7
导出配置
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
注意:您还可以从 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
搜索
自定义搜索
所有支持选项都在文档的 搜索参数 部分中描述。
use MeiliSearch\Endpoints\Indexes; class BookController extends Controller { public function customSearch() { Book::search('prince', function (Indexes $meilisearch, $query, $options) { $options['filters'] = 'author="Antoine de Saint-Exupéry"'; return $meilisearch->search($query, $options); })->take(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(); } }
🗃️ 设置
显示
编辑显示设置
// Get displayed php artisan scout:display books // Edit displayed php artisan scout:display books book_id book_name // Reset displayed php artisan scout:display books --reset
唯一
编辑唯一设置
// Get distinct php artisan scout:distinct books // Edit distinct php artisan scout:distinct books book_id // Reset distinct php artisan scout:distinct books --reset
可过滤
编辑可过滤设置
// Get filterable php artisan scout:filter books // Edit filterable php artisan scout:filter books book_id book_name // Reset filterable php artisan scout:filter books --reset
排名
编辑排名规则
// Get ranking php artisan scout:ranking books // Edit ranking php artisan scout:ranking books book_id book_name // Reset ranking php artisan scout:ranking books --reset
可搜索
编辑可搜索
// Get searchable php artisan scout:search books // Edit searchable php artisan scout:search books book_id book_name // Reset searchable php artisan scout:search books --reset
可排序
编辑可排序
// Get sortable php artisan scout:sort books // Edit sortable php artisan scout:sort books name // Reset sortable php artisan scout:sort books --reset
🤖 与 MeiliSearch 的兼容性
此包仅保证与 MeiliSearch 版本 v0.20.0 的兼容性。
💡 了解更多
如果您对 MeiliSearch 还不熟悉,以下部分可能会引起您的兴趣
- 操作文档:请参阅API 参考或了解更多关于文档的信息。
- 搜索:请参阅API 参考或参考我们的搜索参数指南。
- 管理索引:请参阅API 参考或了解更多关于索引的信息。
- 配置索引设置:请参阅API 参考或参考我们的设置参数指南。此外,本存储库的Wiki将引导您进行配置!
💡 通过阅读 MeiliSearch PHP 客户端 的文档,您可以使用更高级的功能。
👍 本包是 Laravel Scout 的自定义引擎。
开发工作流程和贡献
这个项目欢迎任何新的贡献!
如果您想了解更多关于开发流程或想要贡献,请访问我们的贡献指南以获取详细说明!
MeiliSearch 提供并维护了许多像这样的 SDK 和集成工具。我们希望为任何类型的项目提供 出色的搜索体验。如果您想贡献、提建议或只是想了解目前的情况,请访问我们的 集成指南 存储库。