2017-06-05 56 views
1

我發送一個http獲取請求到彈性搜索服務器,我希望響應是以csv格式。在solr中,我們可以指定wt = csv是否有任何方式在彈性搜索中? 我的查詢是:彈性搜索中獲取請求的CSV響應

enter code here 
http://elasticServer/_search?q=RCE:"some date" OR 
VENDOR_NAME:"Anuj"&from=0&size=5&[email protected] 


    -----After that i want to force the server to return me response in csv format 

回答

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&[email protected]' 
     headers => { 
      Accept => "application/json" 
     } 
     } 
    } 
    codec => "json" 
    } 
} 
filter {} 
output { 
    csv { 
    fields => ["field1", "field2", "field3"] 
    path => "/path/to/data.csv" 
    } 
} 
+0

感謝您的回覆在java中是否支持Logstash? 我如何使用Logstash查詢使用java和UI –

+0

Logstash是一個ETL工具。你配置它就像我上面顯示,然後你運行它。你不能通過Java調用它。你可以嘗試@volatilevar在他的答案中提出的建議,這可能適用於Java。 – Val

0

有一個ElasticSearch插件在Github上稱爲Elasticsearch Data Format Plugin應該滿足你的要求。

+0

我們可以在java中使用 –

+0

簡短答案是肯定的,因爲它不依賴於語言。這是ElasticSearch的插件。您只需安裝它(如https://github.com/codelibs/elasticsearch-dataformat#for-5x所示),並可使用任何Java HTTP客戶端發出HTTP GET請求以獲取csv格式數據。 – volatilevar

+0

因爲我們沒有在本地使用彈性服務器,所以我們已經部署了一些我們需要在那裏安裝該插件的位置,或者我們需要在系統中進行安裝。 正如我在運行一個窗口環境。感謝您的進一步幫助。請回復 –

相關問題