我想为我的网站使用远程Elasticsearch服务器。
我已经使用elastic.co/
云服务来创建远程Elasticsearch服务器。我可以使用以下命令(清除了敏感信息)连接/ ping远程Elasticsearch服务器:curl -u username:password 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与我的网站集成:https : //elasticsearch-py.readthedocs.io/en/v7.10.1/index.html#
要初始化本地连接,我导入Elasticsearch类并通过粘贴我的Elasticsearch服务器的本地URL来初始化该类的实例。
>>> from elasticsearch import Elasticsearch
>>> es = Elasticsearch('http://localhost:9200')
>>> es
<Elasticsearch([{'host': 'localhost', 'port': 9200}])>
现在,我想使用相同的Elasticsearch类连接到我的远程服务器。为此,我需要使用信息格式化Elasticsearch对象的初始化,以连接到我的远程Elasticsearch服务器。
这是我遇到麻烦的地方。Elasticsearch类的文档字符串非常不透明。简而言之,它要求我创建一个自定义连接对象,但我仍无法弄清楚该如何做。
Elasticsearch对象的文档稍微好一点[1],但仍未提供涉及用户名和密码的示例。
我可以创建API密钥,但不确定如何使用它。涉及API密钥或回答如何使用我的用户名和密码进行连接的答案将非常有帮助。
您需要按照文档中所述使用TLS / SSL和身份验证进行连接。
在您的情况下,您应该使用类似这样的方法。
from elasticsearch import Elasticsearch
es = Elasticsearch(
['5555555555bb0c30d1cba4e9e6.us-central1.gcp.cloud.es.io'],
http_auth=('username', 'password'),
scheme="https",
port=9243,
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句