使用python'连接到远程Elasticsearch服务器;s Elasticsearch软件包
我想为我的网站使用远程Elasticsearch服务器 我使用使用python'连接到远程Elasticsearch服务器;s Elasticsearch软件包,python,
elasticsearch,curl,Python,
elasticsearch,Curl,我想为我的网站使用远程Elasticsearch服务器 我使用elastic.co/云服务创建了一个远程Elasticsearch服务器。 我可以使用以下命令连接/ping远程Elasticsearch服务器(清除敏感信息): curl-u用户名:密码https://55555555555bb0c30d1cba4e9e6.us-central1.gcp.cloud.es.io:9243 将此命令绑定到终端后,我收到以下响应: { "name" : "insta
elastic.co/
云服务创建了一个远程Elasticsearch服务器。
我可以使用以下命令连接/ping远程Elasticsearch服务器(清除敏感信息):
curl-u用户名:密码https://55555555555bb0c30d1cba4e9e6.us-central1.gcp.cloud.es.io:9243
将此命令绑定到终端后,我收到以下响应:
{
"name" : "instance-0000000001",
"cluster_name" : "555555555555",
"cluster_uuid" : "55555555555",
"version" : {
"number" : "7.10.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "555555555555555555555555",
"build_date" : "2021-01-13T00:42:12.435326Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
我正在使用以下Elasticsearch python客户端将Elasticsearch与我的网站集成:
为了初始化本地连接,我导入Elasticsearch类,并通过粘贴Elasticsearch服务器的本地url来初始化该类的实例
>>> from elasticsearch import Elasticsearch
>>> es = Elasticsearch('http://localhost:9200')
>>> es
<Elasticsearch([{'host': 'localhost', 'port': 9200}])>
>>>从elasticsearch导入elasticsearch
>>>es=弹性搜索('http://localhost:9200')
>>>es
现在我想使用相同的Elasticsearch类连接到远程服务器。为此,我需要使用连接到远程Elasticsearch服务器的信息格式化Elasticsearch对象的初始化
>>> from elasticsearch import Elasticsearch
>>> es = Elasticsearch('http://localhost:9200')
>>> es
<Elasticsearch([{'host': 'localhost', 'port': 9200}])>
这就是我遇到麻烦的地方。Elasticsearch类的docstring非常不透明。简而言之,它要求我创建一个自定义连接对象,但我还没有弄清楚如何创建它
Elasticsearch对象的文档有[稍微好一点][1],但仍然没有给出涉及用户名和密码的示例
我有能力创建API密钥,但我不知道如何使用它。如果回答涉及API密钥或回答如何使用我的用户名和密码进行连接,将非常有用。您需要使用文档中描述的方法进行连接
在你的情况下,你应该使用这样的东西
从elasticsearch导入elasticsearch
es=弹性搜索(
['555555 BB0C30D1CBA4E9E6.us-central1.gcp.cloud.es.io'],
http_auth=('username','password'),
scheme=“https”,
端口=9243,
)
谢谢!这起作用了。