У меня установлен 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": []
}
Я знаю, что это не ошибка моего кода, так как он работает на локальном хосте, но я не знаю, почему я получаю пустой ответ после первого запроса на производственном сервере?