meilisearch / meilisearch-php
Meilisearch API的PHP封装
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- php-http/discovery: ^1.7
- psr/http-client: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.8.1
- http-interop/http-factory-guzzle: ^1.2.0
- php-cs-fixer/shim: ^3.59.3
- phpstan/extension-installer: ^1.4.1
- phpstan/phpstan: ^1.11.5
- phpstan/phpstan-deprecation-rules: ^1.2.0
- phpstan/phpstan-phpunit: ^1.4.0
- phpstan/phpstan-strict-rules: ^1.6.0
- phpunit/phpunit: ^9.5 || ^10.5
Suggests
- guzzlehttp/guzzle: Use Guzzle ^7 as HTTP client
- http-interop/http-factory-guzzle: Factory for guzzlehttp/guzzle
- dev-main
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.0
- v0.27.0
- v0.26.1
- v0.26.0
- v0.25.1
- v0.25.0
- v0.24.2
- v0.24.1
- v0.24.0
- v0.23.3
- v0.23.2
- v0.23.1
- v0.23.0
- v0.22.0
- v0.21.0
- v0.20.0
- v0.19.3
- v0.19.2
- v0.19.1
- v0.19.0
- v0.18.3
- v0.18.2
- v0.18.1
- v0.18.0
- v0.17.2
- v0.17.1
- v0.17.0
- v0.16.0
- v0.15.1
- v0.15.0
- v0.14.2
- v0.14.1
- v0.14.1-alpha0
- v0.14.0
- v0.13.3
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.0
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.0
- v0.8.2
- v0.8.1
- dev-staging
- dev-v1.9.0-distinct-at-search
- dev-dependabot/github_actions/release-drafter/release-drafter-6
- dev-update-xml-dist
- dev-trying
This package is auto-updated.
Last update: 2024-09-19 15:03:23 UTC
README
Meilisearch PHP
Meilisearch | Meilisearch Cloud | 文档 | Discord | 路线图 | 网站 | 常见问题解答
🚀 为PHP编写的Meilisearch API客户端 🐘
Meilisearch PHP 是为PHP开发者提供的Meilisearch API客户端。
Meilisearch 是一个开源的搜索引擎。 了解Meilisearch的更多信息。
目录
📖 文档
要了解更多关于Meilisearch PHP的信息,请参阅深入的Meilisearch PHP文档。要了解有关Meilisearch的一般信息,请参阅我们的文档或我们的API参考。
🚀 让您的Meilisearch体验更上一层楼
告别服务器部署和手动更新,使用Meilisearch Cloud。开始14天的免费试用!无需信用卡。
🔧 安装
要开始使用,只需使用Composer引入该项目。
您还需要安装提供“psr/http-client-implementation
”和“psr/http-factory-implementation
”的软件包。
兼容的HTTP客户端和客户端适配器列表可在php-http.org找到。
如果您不知道要使用哪个HTTP客户端,我们建议使用Guzzle 7。:
composer require meilisearch/meilisearch-php guzzlehttp/guzzle http-interop/http-factory-guzzle:^1.0
以下是用symfony/http-client
安装的示例
composer require meilisearch/meilisearch-php symfony/http-client nyholm/psr7:^1.0
💡 更多与此软件包兼容的HTTP客户端安装可在此部分找到。
运行Meilisearch
有许多简单的方法可以下载和运行Meilisearch实例。
例如,使用终端中的curl
命令
#Install Meilisearch curl -L https://install.meilisearch.com | sh # Launch Meilisearch ./meilisearch --master-key=masterKey
注意:您还可以从 Homebrew 或 APT 下载Meilisearch,甚至使用 Docker 运行它。
🚀 入门
添加文档
<?php require_once __DIR__ . '/vendor/autoload.php'; use Meilisearch\Client; $client = new Client('http://127.0.0.1:7700', 'masterKey'); # An index is where the documents are stored. $index = $client->index('movies'); $documents = [ ['id' => 1, 'title' => 'Carol', 'genres' => ['Romance, Drama']], ['id' => 2, 'title' => 'Wonder Woman', 'genres' => ['Action, Adventure']], ['id' => 3, 'title' => 'Life of Pi', 'genres' => ['Adventure, Drama']], ['id' => 4, 'title' => 'Mad Max: Fury Road', 'genres' => ['Adventure, Science Fiction']], ['id' => 5, 'title' => 'Moana', 'genres' => ['Fantasy, Action']], ['id' => 6, 'title' => 'Philadelphia', 'genres' => ['Drama']], ]; # If the index 'movies' does not exist, Meilisearch creates it when you first add the documents. $index->addDocuments($documents); // => { "uid": 0 }
使用 uid
,您可以通过 任务 检查您文档添加的状态(enqueued
、canceled
、processing
、succeeded
或 failed
)。
基本搜索
// Meilisearch is typo-tolerant: $hits = $index->search('wondre woman')->getHits(); print_r($hits);
输出
Array ( [0] => Array ( [id] => 2 [title] => Wonder Woman [genres] => Array ( [0] => Action, Adventure ) ) )
自定义搜索
所有支持的选项都在文档的 搜索参数 部分描述。
💡 关于 search()
方法的更多信息,请参阅 Wiki。
$index->search( 'phil', [ 'attributesToHighlight' => ['*'], ] )->getRaw(); // Return in Array format
JSON 输出
{ "hits": [ { "id": 6, "title": "Philadelphia", "genre": ["Drama"], "_formatted": { "id": 6, "title": "<em>Phil</em>adelphia", "genre": ["Drama"] } } ], "offset": 0, "limit": 20, "processingTimeMs": 0, "query": "phil" }
带过滤的自定义搜索
如果您想启用过滤,必须将您的属性添加到 filterableAttributes
索引设置中。
$index->updateFilterableAttributes([ 'id', 'genres' ]);
您只需要执行此操作一次。
请注意,每次您更新 filterableAttributes
时,Meilisearch 都会重建您的索引。根据您的数据集大小,这可能需要一些时间。您可以使用 任务 跟踪此过程。
然后,您可以进行搜索
$index->search( 'wonder', [ 'filter' => ['id > 1 AND genres = Action'] ] );
{ "hits": [ { "id": 2, "title": "Wonder Woman", "genres": ["Action","Adventure"] } ], "offset": 0, "limit": 20, "estimatedTotalHits": 1, "processingTimeMs": 0, "query": "wonder" }
🤖 与Meilisearch的兼容性
此包保证与 Meilisearch v1.x 版本 兼容,但某些功能可能不可用。请查看 问题 获取更多信息。
💡 了解更多
以下部分可能在我们的主要文档网站上引起您的兴趣
- 操作文档:请参阅 API 参考 或了解更多关于 文档 的信息。
- 搜索:请参阅 API 参考 或遵循我们的 搜索参数 指南。
- 管理索引:请参阅 API 参考 或了解更多关于 索引 的信息。
- 配置索引设置:请参阅 API 参考 或遵循我们的 设置参数 指南。
🧰 HTTP客户端兼容性
您可以使用任何 PSR-18 兼容客户端与此 SDK 一起使用。不需要额外的配置。
兼容的 HTTP 客户端和客户端适配器列表可在 php-http.org 找到。
如果您想使用此 meilisearch-php
- 与
guzzlehttp/guzzle
(Guzzle 7),运行
composer require meilisearch/meilisearch-php guzzlehttp/guzzle http-interop/http-factory-guzzle:^1.0
- 与
php-http/guzzle6-adapter
(Guzzle < 7),运行
composer require meilisearch/meilisearch-php php-http/guzzle6-adapter:^2.0 http-interop/http-factory-guzzle:^1.0
- 与
symfony/http-client
,运行
composer require meilisearch/meilisearch-php symfony/http-client nyholm/psr7:^1.0
- 与
php-http/curl-client
,运行
composer require meilisearch/meilisearch-php php-http/curl-client nyholm/psr7:^1.0
- 与
kriswallsmith/buzz
,运行
composer require meilisearch/meilisearch-php kriswallsmith/buzz nyholm/psr7:^1.0
自定义您的HTTP客户端
出于某种原因,您可能需要向自己的 HTTP 客户端传递自定义配置。
确保在初始化 Meilisearch 客户端时拥有一个 PSR-18 兼容的客户端。
按照 入门 部分中的示例,使用 Guzzle HTTP 客户端
new Client('http://127.0.0.1:7700', 'masterKey', new GuzzleHttpClient(['timeout' => 2]));
⚙️ 贡献
本项目欢迎任何新的贡献!
如果您想了解更多关于开发工作流程或想要贡献,请访问我们的 贡献指南 获取详细说明!
Meilisearch 提供并维护了许多像这样的 SDKs 和集成工具。我们希望为任何类型的项目提供 令人惊叹的搜索体验。如果您想贡献力量、提出建议或了解当前进展,请访问我们的 集成指南 仓库。