algolia / 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-symfony-7-support
- 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-07-15 12:57:28 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
配置就绪,您可以使用内置的console命令批量导入所有现有数据。
# 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 Manager)。
$em = $this->getDoctrine()->getManagerForClass(Post::class); $posts = $this->searchService->search($em, Post::class, 'query');
有关完整文档,请访问Algolia Symfony Search Bundle。
故障排除
遇到问题了吗?在联系支持之前,我们建议您先访问我们的常见问题解答(FAQ),那里您可以找到关于此包最常见的问题和注意事项的答案。
使用Dockerfile
如果您想在不安装所有依赖项的情况下为这个项目做出贡献,您可以使用我们的Docker镜像。请查阅我们的专用指南以获取更多信息。
📄 许可证
Algolia Symfony Search Bundle是一个开源软件,受MIT许可证许可。