【发布时间】:2016-10-31 14:10:29
【问题描述】:
我正在尝试编写查询 elasticsearch 数据库并在其上构建报告的 ruby 脚本。我正在使用 jbuilder 来构建这样的查询字符串:
require 'elasticsearch'
require 'date'
require 'jbuilder'
client = Elasticsearch::Client.new log: true, host: 'x.x.x.x', request_timeout: 10
filter_conditions = {}
filter_conditions['must'] = []
filter_conditions['should'] = []
filter_conditions['must'] << Jbuilder.encode do |json|
json.term do
json._type 'httpry-log'
end
end
filter_conditions['must'] << Jbuilder.encode do |json|
json.range do
json.set! '@timestamp' do
_now = DateTime.now
json.gte (_now - 1.00/24).strftime('%Q').to_i
json.lte _now.strftime('%Q').to_i
json.format 'epoch_millis'
end
end
end
query = Jbuilder.encode do |json|
json.size 10
json.query do
json.bool do
json.must do
json.array!(filter_conditions['must'])
end
end
end
end
puts query
但这是我得到的查询结果: {"size":10,"query":{"bool":{"must":["{\"term\":{\"_type\":\"httpry-log\"}}" ,"{\"range\":{\"@timestamp\":{\"gte\":1477919154057,\"lte\":1477922754057,\"format\":\"epoch_millis\"}}}"] }}}
如何在主 json 输出中获取内部数组的非转义版本?
提前致谢,
【问题讨论】: