Почему Searchkick показывает результат только для первого запроса после переиндексации? - PullRequest
0 голосов
/ 03 марта 2019

У меня установлен Elasticsearched 6.6.1 на моем сервере, работающем вдоль драгоценного камня Searchkick в приложении ruby ​​on rails.

В моей модели продукта я добавил «активный» логический столбец с истинным значением по умолчанию.

Я проиндексировал все модели с помощью rake searchkick:reindex:all RAILS_ENV=production, и я выполняю поиск по моей модели продукта в контроллере, как это:

Product.search(
      q,
      fields: SEARCHES_FIELDS,
      where: args,
      order: { created_at: :desc },
      page: page,
      per_page: per_page,
      includes: %i[holder]
    )

и args содержит active: true

  def retrieve_args
    args = {}
    args[:created_at] = { gte: Date.parse(date_range[:from]) } unless date_range[:from].nil?
    args[:created_at] = { lte: Date.parse(date_range[:to]) } unless date_range[:to].nil?
    args[:active] = true
    args
  end

Если я удаляю args[:active] = true, ответ содержит ожидаемые результаты.этот код отлично работает на моем локальном хосте в среде разработки, но когда я запускаю его на своем сервере в производственном режиме и запускаю rake searchkick:reindex:all RAILS_ENV=production, первый запрос имеет правильный ответ, но если я запрашиваю снова, ответ будет пустым, как это:

{
    "total_pages": 0,
    "next_page": null,
    "posts": []
}

Я знаю, что это не ошибка моего кода, так как он работает на локальном хосте, но я не знаю, почему я получаю пустой ответ после первого запроса на производственном сервере?

...