来自弹性搜索的get请求的CSV响应

时间:2017-06-05 04:55:58

标签: elasticsearch

我正在向弹性搜索服务器发送一个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  

2 个答案:

答案 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插件,可以满足您的要求。