ruby-on-rails - SearchKick中的日期范围查询( Elasticsearch )

标签 ruby-on-rails ruby elasticsearch

我有一个列出事件集合的Rails 5应用程序。我已经对SearchKick进行了很好的设置,现在我试图添加仅显示从今天开始的事件的功能,但是我正在为实现而苦苦挣扎。我目前有以下内容:
events_controller.rb

class EventsController < ApplicationController

    def index
      query = params[:j].presence || "*"
      conditions = {}
      conditions[:sector_name] = params[:sector_name] if params[:sector_name].present?
      conditions[:service_name] = params[:service_name] if params[:service_name].present?
      conditions[:start_date] = params[:start_date] if params[:start_date].present?
      @events = Event.search query, where: conditions, aggs: [:sector_name, :service_name], range: {start_date: {"gte": "now/d"}}, order: {start_date: {order: "asc", unmapped_type: "long"}}, page: params[:page], per_page: 10
    end
  ...
end

在我的postgres数据库中,start_datedate类型。

当我转到index.html.erb时,我仍会在今天的日期之前看到带有start_date的事件。

最佳答案

解决了。

def index
  query = params[:j].presence || "*"
  conditions = {start_date: {"gte": "now/d"}}
  conditions[:sector_name] = params[:sector_name] if params[:sector_name].present?
  conditions[:service_name] = params[:service_name] if params[:service_name].present?
  conditions[:start_date] = params[:start_date] if params[:start_date].present?
  @events = Event.search query, where: conditions, aggs: [:sector_name, :service_name], order: {start_date: {order: "asc", unmapped_type: "long"}}, page: params[:page], per_page: 10
end

我只是将start_date: {"gte": "now/d"}传递到条件哈希中。这意味着它现在可以与我的aggs搜索结合使用。

关于ruby-on-rails - SearchKick中的日期范围查询( Elasticsearch ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39099513/

相关文章:

elasticsearch - Elasticsearch复杂的多存储桶时间聚合- session 数据到用户计数

javascript - 客户端数据存储

ruby - 使用 Ruby 在浏览器中打开图像

c# - Boosting使用Elastic/NEST开始并包含搜索

elasticsearch - 从 FTP 收集日志文件到 Logstash/Elasticsearch

ruby-on-rails - ActiveRecord:查询未对 STI 子类使用正确的类型条件

ruby-on-rails - rails 4 中需要的重要 rails 3.2 概念

ruby-on-rails - Rails : RESTful Find, 初始化或创建

ruby-on-rails - 如何在宿主应用程序中呈现 Rails 引擎的 View

ruby-on-rails - Rails - 使用 Heroku SSL 在 Heroku 上发布