2015-09-25 22 views
3

即時通訊新增到stackoverflow,所以如果我犯了一個錯誤,對不起。Elasticsearch/Python /代理

我必須編寫一個python腳本,用Elasticsearch收集一些數據,然後將數據寫入數據庫。我正在努力用elasticsearch收集數據,因爲我工作的公司是在代理之後。

該腳本沒有代理工作..但我不知道如何將代理設置傳遞給Elasticsearch。

下面的代碼工作不使用代理服務器:

es = Elasticsearch(['https://user:[email protected]/elasticsearch']) 
res = es.search(index=index, body=request, search_type="count") 

我試着下面當我代理的背後:

es = Elasticsearch(['https://user:[email protected]/elasticsearch'], _proxy = 'http://proxy.org', _proxy_headers = {'basic_auth': 'user:pw'}) 
res = es.search(index=index, body=request, search_type="count") 
return res 

有誰知道,我有向下傳遞Elasticsearch所以它的關鍵字使用代理?

任何幫助將是很好的。

謝謝。

+0

我的問題不夠清楚嗎?我必須指定更多的東西嗎? – meulth

回答

2

我在GitHub上一個答案:

https://github.com/elastic/elasticsearch-py/issues/275#issuecomment-143781969

再次感謝一噸!

from elasticsearch import RequestsHttpConnection 

class MyConnection(RequestsHttpConnection): 
    def __init__(*args, **kwargs): 
     proxies = kwargs.pop('proxies', {}) 
     super(MyConnection, self).__init__(*args, **kwargs) 
     self.session.proxies = proxies 

es = Elasticsearch([es_url], connection_class=MyConnection, proxies = {'https': 'http://user:[email protected]:port'}) 


print(es.info())