【发布时间】:2014-05-29 23:12:27
【问题描述】:
我正在使用 Elasticsearch(使用 Tire),需要创建一个 facet 来输出有关每天、每周、每月的每日唯一 mac 地址的统计信息。我在让它正常工作时遇到了问题。
我需要平均数字和总数字,但无法使用 date_histogram 方面:
def self.search_stats params
tire.search(page: params[:page], per_page: 50) do |s|
filter = []
filter << { :terms => { ... }}
s.facet('uniques') do
date :created_at, :interval => 'day', value_field: 'mac.sortable'
facet_filter :and, filter
end
end
end
这给出了一个错误:“无法解析源...”
最后,我一直在尝试使用脚本来完成它,但这并没有真正奏效,因为我不知道如何对值进行分组。
我一直在使用:
date :created_at, value_script: "doc['mac.sortable'].values.size()", interval: 'day'
观察。 size() 是错误的,因为我需要唯一值。
我的映射如下所示:
mapping do
...
indexes :mac, type: 'multi_field', fields: {
raw: {type: 'string', index: 'analyzed'},
sortable: {type: 'string', index: :not_analyzed}
}
...
end
由于内存使用警告,我根本不想使用脚本字段。
如何每天对我的 Mac 进行分组和排序?
【问题讨论】:
标签: ruby-on-rails elasticsearch tire