为什么Searchkick在重新索引后仅显示第一个请求的结果?

时间:2019-03-03 15:16:36

标签: ruby-on-rails elasticsearch searchkick

我在我的服务器上安装了Elasticsearched 6.6.1,并与我的ruby on rails应用程序中的Searchkick gem一起工作。

在我的产品模型上,我添加了具有默认真实值的“活动”布尔值列。

我用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": []
}

我知道这不是我的代码在本地主机上工作的错误,但是我不知道为什么在生产服务器上首次请求后我得到的响应为空?

0 个答案:

没有答案