2016-09-30 27 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)