meilisearch/meilisearch-laravel-scout

该包已被废弃且不再维护。未建议替代包。

Laravel Scout 自定义引擎用于 MeiliSearch

v0.12.5 2021-03-10 19:45 UTC

README

MeiliSearch Laravel Scout

[已废弃] MeiliSearch Laravel Scout

MeiliSearch | 文档 | Slack | 路线图 | 网站 | 常见问题解答

Latest Stable Version Actions Status License Bors enabled

⚡ MeiliSearch 的 Laravel Scout 驱动器

⚠️ 此包已废弃。我们建议您使用现在支持 MeiliSearch 的 Laravel Scout

MeiliSearch Laravel Scout 是 Laravel 的 MeiliSearch 驱动器。

MeiliSearch 是一个开源搜索引擎。 探索 MeiliSearch 是什么!

目录

📖 文档

查看我们的 文档 或我们的 API 参考

此外,还可以查看此存储库的 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

注意:您还可以通过 HomebrewAPT 下载 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 还不熟悉,以下部分可能对您有所帮助

💡 您可以通过阅读 MeiliSearch PHP 客户端 的文档来使用更多高级功能。

👍 本包是 Laravel Scout 的自定义引擎。

开发工作流程和贡献

这个项目中任何新的贡献都受到欢迎!

如果您想了解更多关于开发工作流程的信息或想做出贡献,请访问我们的 贡献指南 获取详细说明!

MeiliSearch 提供并维护了许多像这样的 SDK 和集成工具。我们希望为各种项目提供 出色的搜索体验。如果您想做出贡献、提出建议或只是想了解当前正在进行的事情,请访问我们的 集成指南 仓库。