strapi-plugin-strapi-algolia
v2.0.1
Published
Index articles configured to Algolia
Downloads
1,522
Readme
Strapi plugin strapi-algolia
A strapi plugin to sync your strapi content with Algolia.
Getting started
1. Installation
Strapi v5 - Use latest version
With Yarn
yarn add strapi-plugin-strapi-algolia@latest
With NPM
npm install --save strapi-plugin-strapi-algolia@latest
Strapi v4 - Use version 1.x.x
With Yarn
yarn add strapi-plugin-strapi-algolia@1
With NPM
npm install --save strapi-plugin-strapi-algolia@1
2. Setup environment variables
ALGOLIA_ADMIN_KEY=your_algolia_app_id
ALGOLIA_APP_ID=your_algolia_api_key
3. Configure the plugin
In Javascript
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' },
// ...
],
},
},
});
In Typescript
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' },
// ...
],
},
},
});
All configurations options
| 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> | [] |
UI
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.
Endpoints
Index all the content of a 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
Example with curl:
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"
}'