2016-12-01 40 views
3

に従うことをしようとしてエラー「接続が拒否」私はPython Elasticsearchは「使用例」スクリプトを実行しようとしている:PythonのElasticsearchの使用例

from datetime import datetime 
from elasticsearch import Elasticsearch 
es = Elasticsearch() 

doc = { 
    'author': 'kimchy', 
    'text': 'Elasticsearch: cool. bonsai cool.', 
    'timestamp': datetime.now(), 
} 
res = es.index(index="test-index", doc_type='tweet', id=1, body=doc) 
print(res['created']) 

res = es.get(index="test-index", doc_type='tweet', id=1) 
print(res['_source']) 

es.indices.refresh(index="test-index") 

res = es.search(index="test-index", body={"query": {"match_all": {}}}) 
print("Got %d Hits:" % res['hits']['total']) 
for hit in res['hits']['hits']: 
    print("%(timestamp)s %(author)s: %(text)s" % hit["_source"]) 

はしかし、私は次のエラーを取得する:

Traceback (most recent call last): 
    File "elasticsearch_example_usage.py", line 10, in <module> 
    res = es.index(index="test-index", doc_type='tweet', id=1, body=doc) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py", line 69, in _wrapped 
    return func(*args, params=params, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/__init__.py", line 279, in index 
    _make_path(index, doc_type, id), params=params, body=body) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py", line 327, in perform_request 
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/http_urllib3.py", line 105, in perform_request 
    raise ConnectionError('N/A', str(e), e) 
elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x7f0be9c14890>: Failed to establish a new connection: [Errno 111] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x7f0be9c14890>: Failed to establish a new connection: [Errno 111] Connection refused) 

これが機能しない理由を誰かが明確にすることはできますか? Elasticsearchをセットアップするために必要なコマンドがありますか?参照されたウェブサイトは、追加の指示または説明を提供していません。

答えて

2

Python Elasticsearchクライアントは、パズルの単なる1つであり、Elasticsearchサーバーで動作する必要があります。これを呼び出すとき:

es = Elasticsearch() 

あなたはElasticsearchホストへのクライアント接続を設定しています。引数なしで呼び出すと、default valuesが使用され、localhostのポート9200に接続しようとします。

Elasticsearchサーバーを設定するには、Elasticsearch siteをクリックして、ローカルまたはクラウドでの実行に関するドキュメントを参照してください(いずれにしても魅力的です)。 downloadの指示に従うと、ローカルホストのポート9200でElasticsearchが実行されます。これにより、サンプルが機能します。

関連する問題