Problemas de reindexação do Algolia

Ao executar algolia:reindex usando a tarefa rake, ele travou com o seguinte erro

Limpando usuários do Algolia
Enviando usuários para o Algolia
...
Enviados com sucesso 1849 usuários para o Algolia
Limpando tags do Algolia
Enviando tags para o Algolia
..
Enviadas com sucesso 53 tags para o Algolia
Limpando posts do Algolia
Enviando posts para o Algolia
rake abortou!
Algolia::AlgoliaHttpError: Registro na posição 662 objectID=690 é muito grande tamanho=20920/20000 bytes. Por favor, dê uma olhada em 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)

Pelo que pude ver, o plugin não contém nenhuma funcionalidade para dividir posts mais longos em partes separadas. Consegui contornar o problema não incluindo posts longos adicionando

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

logo antes da chamada @index.save_objects, mas isso também significa que esses posts não estão sendo indexados.

2 curtidas

Alguma ideia do que a API espera? Devemos truncar ou enviar em vários pedaços?

Conforme Index long pages - Algolia ele precisa ser dividido em partes (chunked) e distinct precisa ser definido como true ao pesquisar.

O tamanho máximo é dependente do plano, mas não consigo encontrar uma maneira de consultá-lo. Dado o fato de que também existe um limite de “tamanho médio de registro em todos os registros” em certos planos, pode ser bom dividir em partes 10 KB 10000 bytes.

2 curtidas