Algolia 重新索引问题

在执行 algolia:reindex 的 rake 任务时,它崩溃并出现以下错误:

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)

据我所知,该插件不包含将较长的帖子拆分为单独块的功能。我通过在 @index.save_objects 调用之前添加

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

来规避这个问题,但这同时也意味着这些帖子根本没有被索引。

2 个赞

API期望什么?我们应该截断还是分块发送?

根据 https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/indexing-long-documents/,需要将其分块,并在搜索时将 distinct 设置为 true

最大尺寸取决于套餐,但我找不到查询它的方法。考虑到某些套餐还有“所有记录的平均记录大小”限制,最好分块为 10 KB 10000 字节。

2 个赞