2016-02-25 56 views
0

我想在Python运行一个非常简单的插入到Elasticsearch:elasticsearch蟒蛇pycharm

es = Elasticsearch({'host': 'localhost', 'port': 9200}) 
res = es.index(index='data-client_dev', doc_type='test', id=2, body={'author': 'Christophe'}, timeout=60) 
print(res['created']) 

,但我一直在末端粘贴错误。 我在Ubuntu 14下使用PyCharm(如果这可能有帮助)。 ES节点已启动并在本地计算机上运行。 我试图改变超时(或与request_timeout),但它什么都不做。奇怪的是,查询是从终端上运行的,所以也许是Pycharm的问题。 我是初学者,所以也许我错过了明显的东西。

非常感谢您的帮助!

WARNING:elasticsearch:PUT http://port:9200/data-client_dev/test/2?timeout=60 [status:N/A request:20.040s] 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/http_urllib3.py", line 78, in perform_request 
    response = self.pool.urlopen(method, url, body, retries=False, headers=self.headers, **kw) 
    File "/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 608, in urlopen 
    _stacktrace=sys.exc_info()[2]) 
    File "/usr/local/lib/python2.7/dist-packages/urllib3/util/retry.py", line 224, in increment 
    raise six.reraise(type(error), error, _stacktrace) 
    File "/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 558, in urlopen 
    body=body, headers=headers) 
    File "/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 353, in _make_request 
    conn.request(method, url, **httplib_request_kw) 
    File "/usr/lib/python2.7/httplib.py", line 979, in request 
    self._send_request(method, url, body, headers) 
    File "/usr/lib/python2.7/httplib.py", line 1013, in _send_request 
    self.endheaders(body) 
    File "/usr/lib/python2.7/httplib.py", line 975, in endheaders 
    self._send_output(message_body) 
    File "/usr/lib/python2.7/httplib.py", line 835, in _send_output 
    self.send(msg) 
    File "/usr/lib/python2.7/httplib.py", line 797, in send 
    self.connect() 
    File "/usr/local/lib/python2.7/dist-packages/urllib3/connection.py", line 162, in connect 
    conn = self._new_conn() 
    File "/usr/local/lib/python2.7/dist-packages/urllib3/connection.py", line 142, in _new_conn 
    (self.host, self.timeout)) 
ConnectTimeoutError: (<urllib3.connection.HTTPConnection object at 0x7fe723d7e550>, u'Connection to port timed out. (connect timeout=10)') 
WARNING:elasticsearch:Connection <Urllib3HttpConnection: http://port:9200> has failed for 1 times in a row, putting on 60 second timeout. 

回答

2

您需要创建Elasticsearch客户端这样的,即通过将主机中的列表:

es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) 
       ^        ^
        |         | 
       add this       and this 
+0

好非常感谢它的工作! – Barrec