elinoi-dev/elinoi-search-bundle

确保搜索:import 在过程中不会中断

安装量: 4,006

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 70

类型:symfony-bundle

1.1 2023-07-06 15:39 UTC

This package is auto-updated.

Last update: 2024-09-28 11:55:35 UTC


README

Algolia for Symfony

将 Algolia 集成到您的 Symfony 项目的最佳起点

CircleCI Total Downloads Latest Version License

文档PHPLaravel社区论坛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_IDALGOLIA_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许可协议