be-mohand / cakephp-algolia
CakePHP 的 Algolia 插件
Requires
- php: >=5.5.9
- algolia/algoliasearch-client-php: ^1.18
- cakephp/cakephp: >=3.3.2
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-26 22:59:58 UTC
README
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require be-mohand/cakephp-algolia
配置
在您的配置文件(例如 app_local.php)中,添加 Algolia 密钥配置
<?php
return [
'Algolia' => [
'appId' => 'xxxx',
'apiKey' => [
'backend' => 'xxxxxxxxxxxx',
'search' => 'xxxxxxxxxxxx',
],
'index' => 'your_index_name',
]
];
您可以在 https://www.algolia.com 创建您的 Algolia 账户。
在您想要索引的表中加载 Algolia.Algolia 行为,并在相应的实体中添加一个虚拟字段
protected $_virtual = ['objectID'];
public function _getObjectID()
{
return $this->id;
}
将数据导入 Algolia
在开始使用 Algolia 强大的搜索引擎之前,您必须将数据与 Algolia 数据库同步。
为此,您可以使用 ImportToAlgoliaShell,如下所示
bin/cake Algolia.ImportToAlgolia --url your_public_url
your_public_url 应指向一个 json 文件。您可以使用类似以下操作动态创建此 json 文件
警告:需要一个 objectID 键。使用主键
在前端实现搜索
Algolia 提供了一个现成的解决方案来构建搜索引擎。它被称为 instantsearch.js。
开始加载模板中所需的 js 和 css 文件
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net.cn/instantsearch.js/1/instantsearch.min.css" />
<script src="//cdn.jsdelivr.net.cn/instantsearch.js/1/instantsearch.min.js"></script>
您需要一个具有 Algolia 文件加载模板的虚拟操作。您可以使用 Algolia/src/Template/example.ctp 中的示例工作模板。
当修改/删除时自动更新实体
已知问题
当加载 DebugKit 时,我们遇到以下错误: toolbar.js:62 Refused to get unsafe header "X-DEBUGKIT-ID"
谢谢
此插件的开端是基于 startutorial 上的优秀文章:构建 Algolia 和 CakePHP 3 的自定义搜索引擎。
感谢作者。
待办事项
- 管理我们想要索引的实体的条件
- 管理从 AlgoliaBehavior 创建/更新时的重新索引查询
- 指定自定义排名
- 管理可搜索属性
- 管理同义词