Изменения модели для Algolia не отображаются на консоли рельсов в ПРОДУКЦИИ - PullRequest
2 голосов
/ 05 января 2020

У меня есть модель, показанная ниже:

class Note < Record
  include Shared::ContentBasedModel

  algoliasearch disable_indexing: AppConfig.apis.algolia.disable_indexing do
    attributes :id, :key
    [:keywords, :tags, :description, :summary].each do |attr|
      attribute [attr] do
        self.meta[attr.to_s]
      end
    end
    attribute :content do
      Nokogiri.HTML(self.meta["html"]).text.split(' ').reject { |i| i.to_s.length < 5 }.map(&:strip).join ' '
    end
    attribute :photo do
      unless self.meta["images"].blank?
        self.meta["images"].first["thumb"]
      end
    end
    attribute :slug do
      to_param
    end
    attribute :url do
      Rails.application.routes.url_helpers.note_path(self)
    end
  end
end

Я использую гем AlgoliaSearch для индексации своих моделей в API Algolia, и когда я пытался index модель с какое-то длинное content Я получаю следующую ошибку:

Ошибка: Algolia :: AlgoliaProtocolError (400: невозможно выполнить POST для https://XXXX.algolia.net/1/indexes/Note/batch: {" сообщение ":" Запись в позиции 1 слишком велика. ObjectID = 56 = 20715 байт. Свяжитесь с нами, если вам нужна расширенная квота "," position ": 1," objectID ":" 56 "," status ": 400} (400))

После этого я удалил ВСЁ следующим образом, НО я все еще получаю точно такую ​​же ошибку !!

class Note < Record
  include Shared::ContentBasedModel

  algoliasearch disable_indexing: AppConfig.apis.algolia.disable_indexing do
    attributes :id
  end
end

Похоже, что Rails не обновляет кэшированные модели.

Окружение: production Версия Rails: v6 Вопрос: Почему это происходит и как я могу очистить кэшированную модель?


Примечание: Я перепробовал все, включая удаление папки tmp/cache, но это не go прочь!

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Как вы проверяете свой код? Вы входите в консоль rails на вашем сервере? Может быть, вы запускаете старый релиз вместо нового, если вы используете Capistrano или Mina для развертывания?

0 голосов
/ 06 января 2020

Похоже, что сам размер объекта превышает максимально допустимый размер.

objectID = 56 слишком большой размер = 20715 байт

Контакт https://www.algolia.com/ (как предлагается)

Свяжитесь с нами, если вам нужна расширенная квота

...