Problèmes de réindexation Algolia

Lors de l’exécution de algolia:reindex à l’aide de la tâche rake, celle-ci a planté avec l’erreur suivante :

Clearing users from Algolia
Pushing users to Algolia
...
Successfully pushed 1849 users to Algolia
Clearing tags from Algolia
Pushing tags to Algolia
..
Successfully pushed 53 tags to Algolia
Clearing posts from Algolia
Pushing posts to Algolia
rake aborted!
Algolia::AlgoliaHttpError: Record at the position 662 objectID=690 is too big size=20920/20000 bytes. Please have a look at https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/in-depth/index-and-records-size-and-usage-limitations/#record-size-limits (Algolia::AlgoliaHttpError)

D’après ce que je peux voir, le plugin ne contient aucune fonctionnalité pour diviser les articles plus longs en morceaux distincts. J’ai pu contourner le problème en n’incluant pas les articles longs en ajoutant

objects.reject! { |object| object.to_json.bytesize > 20000 }

juste avant l’appel @index.save_objects, mais cela signifie également que ces articles ne sont pas du tout indexés.

2 « J'aime »

Des idées sur ce que l’API attend ? Devrions-nous tronquer ou l’envoyer en plusieurs morceaux ?

Conformément à Index long pages - Algolia , il doit être divisé en morceaux, et distinct doit être défini sur true lors de la recherche.

La taille maximale dépend du plan (dependent on the plan), mais je ne trouve aucun moyen de l’interroger. Étant donné qu’il existe également une limite de « taille moyenne des enregistrements sur tous les enregistrements » pour certains plans, il pourrait être judicieux de diviser en morceaux à 10 Ko 10000 octets.

2 « J'aime »