djfm/algolia-search-symfony-doctrine-bundle

安装次数: 19

依赖者: 0

建议者: 0

安全: 0

星标: 191

关注者: 82

分支: 70

类型:symfony-bundle


README

Algolia for Symfony

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

CircleCI Total Downloads Latest Version License

文档 • 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_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配置键下的条目必须至少包含以下2个属性

  • 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 Manager)。

$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 许可协议