algolia / search-bundle
Requires
- php: >= 8.2
- algolia/algoliasearch-client-php: ^3.0
- doctrine/event-manager: ^1.1 || ^2.0
- doctrine/persistence: ^2.1 || ^3.0
- symfony/filesystem: ^7.0
- symfony/property-access: ^7.0
- symfony/serializer: ^7.0
Requires (Dev)
- ext-json: *
- doctrine/doctrine-bundle: ^2.12
- doctrine/orm: ^2.5
- friendsofphp/php-cs-fixer: ^v3.54.0
- friendsofphp/proxy-manager-lts: *
- jms/serializer-bundle: ^5.4.0
- phpunit/phpunit: ^8.5 || ^9.0
- roave/security-advisories: dev-master
- symfony/framework-bundle: ^7.0
- symfony/phpunit-bridge: ^7.0
- symfony/proxy-manager-bridge: *
- symfony/yaml: ^7.0
Conflicts
- doctrine/mongodb-odm: < 1.3
- 7.0.0
- 6.0.1
- 6.0.0
- dev-master / 5.x-dev
- 5.2.1
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.0
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.0
- 4.0.0-beta2
- 4.0.0-beta1
- 4.0.0-alpha3
- 4.0.0-alpha2
- 4.0.0-alpha1
- 3.x-dev
- 3.4.0
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 3.0.0-BETA5
- 3.0.0-BETA4
- 3.0.0-BETA3
- 3.0.0-BETA2
- 3.0.0-BETA
- 2.x-dev
- 2.3.0-beta
- 2.2.0
- 2.1.0
- 2.0.0
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-pr-380
- dev-ci-pr-trigger
- dev-fix/release
- dev-fix/aggregator-migration
- dev-chore/update-php-client
- dev-chore/update-composer
- dev-feat/formatted-exception
- dev-fix/serialize-once
This package is auto-updated.
Last update: 2024-09-15 13:24:05 UTC
README
Algolia SearchBundle 是在您的 Symfony 项目中集成 Algolia 的完美起点
文档 • PHP • Laravel • 社区论坛 • Stack Overflow • 报告错误 • 常见问题解答 • 支持
✨ 功能
- 简单:只需5行 YAML 即可开始使用
- 强大:它利用了我们的 PHP 客户端 v2 的所有新功能,如
wait()
方法 - 灵活:所有方法都接受可选的
$requestOptions
以便您按需处理数据 - 开发者友好:通过详尽的文档实现自动完成和类型提示
Algolia SearchBundle 支持 PHP > 7.1
💡 入门
首先,通过 composer 包管理器安装 Algolia Search Bundle 集成
composer require algolia/search-bundle
您还需要提供 Algolia App ID 和 Admin API 密钥。默认情况下,它们从环境变量 ALGOLIA_APP_ID
和 ALGOLIA_API_KEY
加载。
如果您使用 .env
配置文件,您可以在其中设置它们。
ALGOLIA_APP_ID=XXXXXXXXXX ALGOLIA_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
如果您不使用环境变量,您可以在 parameters.yml
中设置它们。
parameters: env(ALGOLIA_APP_ID): XXXXXXXXXX env(ALGOLIA_API_KEY): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
索引数据
首先,我们需要定义哪些实体应该被索引到 Algolia。每个位于 indices
配置键下的条目必须至少包含以下两个属性
name
是 Algolia 中索引的规范名称class
是要索引的实体的全名
示例
algolia_search: indices: - name: posts class: App\Entity\Post
通过 CLI
一旦您的 indices
配置就绪,您可以使用内置的命令行工具批量导入所有现有数据。
# Import all indices php bin/console search:import # Choose what indices to reindex by passing the index name php bin/console search:import --indices=posts,comments
在重新索引所有内容之前,您可能想要先清除索引,请参阅 如何删除数据。
简单搜索
在这个例子中,我们将搜索帖子。search
方法将查询 Algolia 以获取匹配的结果,然后创建一个 doctrine 集合。数据是从数据库中提取的(这就是为什么您需要传递 Doctrine 管理器)。
$em = $this->getDoctrine()->getManagerForClass(Post::class); $posts = $this->searchService->search($em, Post::class, 'query');
有关完整文档,请访问 Algolia Symfony Search Bundle。
故障排除
遇到问题了吗?在联系支持之前,我们建议您前往我们的 常见问题解答,在那里您可以找到关于此包的常见问题和注意事项的答案。
使用 Dockerfile
如果您想在不安装所有依赖项的情况下为此项目做出贡献,您可以使用我们的 Docker 镜像。请查阅我们的 专用指南 了解更多信息。
📄 许可证
Algolia Symfony Search Bundle 是一个开源软件,遵循 MIT 许可协议。