如何在 Python 中使用域名进行 Elasticsearch 连接



我们已经使用 kubernetes 部署了 Elasticsearch(8.3),为 Elasticseach 定义了 ingress 作为https://elasticsearch.url.com/es,但是当我使用相同的 Python elasticsearch 包连接到 Elasticsearch 时,我收到以下错误:

注意:我尝试提供端口号(https://elasticsearch.url.com:9200/es/),但仍然不起作用。

ValueError:URL 必须包含"方案"、"主机"和"端口"组件(即"https://localhost:9200")

我使用以下代码进行连接:

from elasticsearch import Elasticsearch
client = Elasticsearch(
["https://elasticsearch.url.com/es/"],
http_auth=('username', 'password')
)

请在这里帮助我如何解决这个问题。

客户端期望类似https://elasticsearch.url.com:9200/,因为最后一个/之后的任何内容都被视为某种路径/操作,例如_search或索引名称,以便Elasticsearch根据该上下文执行某些操作

您可能需要删除 URL 的尾随es部分,然后您可以使用 https://elasticsearch.url.com:80/'(假设入口端口 80 重定向到 Elasticsearch 的端口 9200)

最新更新