我正在尝试使用Ruby脚本在elasticsearch
中获取大量文档。要做到这一点,我需要传递一个HTTP GET请求与身体,我似乎被困在这。我正在使用rest-client
gem,因为它似乎是最简单的。
以下是我在整个Elasticsearch
数据库中获取文档数量的代码:
url = 'http://localhost:9200/bookings/_count'
response = RestClient.get(url)
puts response
现在我需要传递相同的请求,但使用此JSON,作为正文:
query: {
filtered: {
query: {
term: { status: "book_confirmed" }
},
filter: {
bool: {
must: {
range: { date_booked: { gte: "now-7d/d", lte: "now-7d", time_zone: "+2:00" } } },
should: {
term: {contract: "xd.hotels"} }
}
}
}
}
我该怎么做?
编辑:
我已经设法通过POST实现了这一目标。当我发布我不知道的问题时,Elasticsearch
接受Count API中的POST请求。
以下是代码:
urlago = 'http://localhost:9200/bookings/_count'
responseago = RestClient.post(urlago, {query: { filtered: { query: { term: { status: "book_confirmed" } }, filter: { bool: { must: { range: { date_booked: { gte: "now-7d/d", lte: "now-7d", time_zone: "+2:00" } } }, should: { term: {contract: "xd.hotels"} } } } } } }.to_json, {content_type: :json, accept: :json})
puts 'Week ago:'
puts responseago