我正在向弹性搜索服务器发送一个http Get请求,我希望响应采用csv格式。在solr中我们可以指定wt = csv有什么方法在弹性搜索中也是如此? 我的疑问是:
enter code here
http://elasticServer/_search?q=RCE:"some date" OR
VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp
-----After that i want to force the server to return me response in csv format
答案 0 :(得分:0)
默认情况下,ES仅支持两种数据格式:JSON和YAML。但是,如果您愿意使用Logstash,那么您可以非常轻松地实现您想要的目标:
input {
elasticsearch {
hosts => ["localhost:9200"]
query => 'RCE:"some date" OR VENDOR_NAME:"Anuj"'
size => 5
}
}
filter {}
output {
csv {
fields => ["field1", "field2", "field3"]
path => "/path/to/data.csv"
}
}
由于elasticsearch
输入使用滚动,因此您无法指定任何排序。因此,如果排序对您来说非常重要,您可以使用http_poller
input代替elasticsearch
,如下所示:
input {
http_poller {
urls => {
es => {
method => get
url => 'http://elasticServer/_search?q=RCE:"some date" OR VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp'
headers => {
Accept => "application/json"
}
}
}
codec => "json"
}
}
filter {}
output {
csv {
fields => ["field1", "field2", "field3"]
path => "/path/to/data.csv"
}
}
答案 1 :(得分:0)
Github上有一个名为Elasticsearch Data Format Plugin的ElasticSearch插件,可以满足您的要求。