A strapi plugin to sync your strapi content with Algolia.
yarn add strapi-plugin-strapi-algolia@latest
npm install --save strapi-plugin-strapi-algolia@latest
yarn add strapi-plugin-strapi-algolia@1
npm install --save strapi-plugin-strapi-algolia@1
ALGOLIA_ADMIN_KEY=your_algolia_app_id
ALGOLIA_APP_ID=your_algolia_api_key
Add the following code to ./config/plugins.js
'use strict';
module.exports = ({ env }) => ({
// ...
'strapi-algolia': {
enabled: true,
config: {
apiKey: env('ALGOLIA_ADMIN_KEY'),
applicationId: env('ALGOLIA_APP_ID'),
contentTypes: [
{ name: 'api::article.article' },
// ...
],
},
},
});
Add the following code to ./config/plugins.ts
export default ({ env }) => ({
// ...
'strapi-algolia': {
enabled: true,
config: {
apiKey: env('ALGOLIA_ADMIN_KEY'),
applicationId: env('ALGOLIA_APP_ID'),
contentTypes: [
{ name: 'api::article.article' },
// ...
],
},
},
});
Property | Description | Type | Default value |
---|---|---|---|
applicationId | Algolia application ID | string (required) | |
apiKey | Algolia API Key | string (required) | |
indexPrefix | Prefix for the Algolia index | string | `${strapi.config.environment}_` |
contentTypes | Array of content types needed to be indexed | Array<object> (required) | |
contentTypes.name | Name of the content type | string (required) | |
contentTypes.index | Algolia index for the current content type | string | |
contentTypes.idPrefix | Prefix for the item id | string | |
contentTypes.populate | Which fields needed to be indexed on Algolia, by default all the properties are indexed | object | '*' = All fields |
contentTypes.hideFields | Which fields needed to be hidden on Algolia, by default all the properties are indexed | Array<string> | [] |
contentTypes.transformToBooleanFields | Which fields needed to be transform from null to boolean on Algolia | Array<string> | [] |
For each content type configured in the plugin, a new button will be added to the content type list. This button will allow you to index all the content of the content type.
Call the following endpoint /strapi-algolia/index-all-articles
with POST method.
The body must be like this:
{
"name": "api::article.article"
}
You must be admin and add an authorization bearer token in the header.
Authorization: Bearer YOUR_TOKEN
curl --request POST \
--url https://YOUR_STRAPI_INSTANCE/strapi-algolia/index-all-articles \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"name": "api::article.article"
}'