meilisearch / meilisearch-laravel-scout
Laravel Scout 自定义引擎用于 MeiliSearch
Requires
- php: ^7.2|^8.0
- http-interop/http-factory-guzzle: ^1.0
- laravel/scout: ^8.0
- meilisearch/meilisearch-php: ^0.17
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- 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 | 路线图 | 网站 | 常见问题解答
⚡ MeiliSearch 的 Laravel Scout 驱动器
⚠️ 此包已废弃。我们建议您使用现在支持 MeiliSearch 的 Laravel Scout。
MeiliSearch Laravel Scout 是 Laravel 的 MeiliSearch 驱动器。
MeiliSearch 是一个开源搜索引擎。 探索 MeiliSearch 是什么!
目录
📖 文档
此外,还可以查看此存储库的 Wiki!
🔧 安装
安装插件
composer require meilisearch/meilisearch-laravel-scout
安装 HTTP 客户端
您可以使用任何与 PSR-18 兼容的客户端来使用此 SDK。无需额外的配置。
兼容的 HTTP 客户端和客户端适配器列表可以在 php-http.org 上找到。
如果您使用 Laravel 8,则可以跳过此部分,因为 Laravel 默认预安装了 Guzzle 7。
Guzzle 7
composer require guzzlehttp/guzzle
如果您已经安装了版本 < 7 的 guzzle,不要忘记在您的 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(); } }
🤖 与 MeiliSearch 的兼容性
本包仅保证与 MeiliSearch 版本 v0.20.0 的兼容性。
💡 了解更多
如果您对 MeiliSearch 还不熟悉,以下部分可能对您有所帮助
- 操作文档:查看 API 参考 或了解更多关于 文档 的信息。
- 搜索:查看 API 参考 或遵循我们的 搜索参数 指南。
- 管理索引:查看 API 参考 或了解更多关于 索引 的信息。
- 配置索引设置:查看 API 参考 或遵循我们的 设置参数 指南。此外,此存储库的 Wiki 也会指导您进行配置!
💡 您可以通过阅读 MeiliSearch PHP 客户端 的文档来使用更多高级功能。
👍 本包是 Laravel Scout 的自定义引擎。
开发工作流程和贡献
这个项目中任何新的贡献都受到欢迎!
如果您想了解更多关于开发工作流程的信息或想做出贡献,请访问我们的 贡献指南 获取详细说明!
MeiliSearch 提供并维护了许多像这样的 SDK 和集成工具。我们希望为各种项目提供 出色的搜索体验。如果您想做出贡献、提出建议或只是想了解当前正在进行的事情,请访问我们的 集成指南 仓库。