2016-09-30 24 views
0

我正在使用Python Elasticsearch Client。當使用像這樣:無法使用Python Elasticsearch客戶端解析主機

from elasticsearch import Elasticsearch 
es = Elasticsearch(['http://10.20.30.40:8888/']) 
res = es.search(index='my_index', body=self.build_body()) 

一切都好!我可以完美地擁有我的res

不過,我創建了一個別名,映射我elasticsearch端點:

http://10.20.30.40:8888 --->http://foo.bar.com/search

當瀏覽器訪問或捲曲都很好地工作。但我不能使它與這條巨蟒客戶合作:

es = Elasticsearch(['http://foo.bar.com/search']) 
res = es.search(index='my_index', body=self.build_body()) 

這就提出了一個:

TransportError(404, u'index_not_found_exception', u'no such index')

相同的結果:

es = Elasticsearch([{'host':'http://foo.bar.com/search'}]) 

沒有任何一個已經面臨着一些像這樣的問題?

UPDATE:

不能做這樣的工作。所以,對我來說有什麼作用是:

u = urljoin(...) 
r = requests.get(u, data=...) 
+0

你是怎麼稱呼'my_index'索引的別名的? – Val

回答

0

我剛剛再次遇到同樣的問題。原來,如果你不指定端口,es會自動分配9200。所以,正確的形式是:

es = Elasticsearch(['http://foo.bar.com/search'], port=80)