elinoi-dev / elinoi-search-bundle
确保搜索:import 在过程中不会中断
Requires
- php: >= 8.0.2
- algolia/algoliasearch-client-php: ^3.0
- doctrine/event-manager: ^1.1
- doctrine/persistence: ^2.1 || ^3.0
- symfony/filesystem: ^5.0 || ^6.0
- symfony/property-access: ^5.0 || ^6.0
- symfony/serializer: ^5.0 || ^6.0
Requires (Dev)
- ext-json: *
- doctrine/doctrine-bundle: ^1.8 || ^2.0
- doctrine/orm: ^2.5
- friendsofphp/php-cs-fixer: ^2.15
- friendsofphp/proxy-manager-lts: *
- jms/serializer-bundle: ^3.0
- phpunit/phpunit: ^8.5 || ^9.0
- roave/security-advisories: dev-master
- symfony/framework-bundle: ^5.0 || ^6.0
- symfony/phpunit-bridge: ^5.0 || ^6.0
- symfony/proxy-manager-bridge: *
- symfony/yaml: ^5.0 || ^6.0
Conflicts
- doctrine/mongodb-odm: < 1.3
This package is auto-updated.
Last update: 2024-09-28 11:55:35 UTC
README
将 Algolia 集成到您的 Symfony 项目的最佳起点
文档 • 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许可协议。