尝试在项目中使用弹性搜索。
from elasticsearch import Elasticsearch
es = Elasticsearch(
"https://example.com",
http_auth=("abc", "bcd"),
)
但出现错误:
ValueError: URL must include a 'scheme', 'host', and 'port' component (ie 'https://localhost:9200')
我在 Pycharm CE 上运行它并创建了 Python 3.9 的虚拟环境。 我应该使用不同版本的 Python 来完成这项工作吗? 而且,我已经尝试过
pip install acryl-datahub[datahub-rest,elasticsearch]==0.8.27.1
但没有成功。
我面临着同样的错误。安装ES 7.17版本解决了这个问题。我还发现
pip install acryl-datahub[datahub-rest,elasticsearch]==0.8.27.1
上不可用。尝试使用下一个可用版本 (0.8.28.0),并意识到它正在降级 elasticsearch
至 7.17。
所以尝试
pip install elasticsearch==7.17
。
在 settings.py 中使用这些代码行帮助我避免了这个错误。
ELK_BASE_URL = 'elasticsearch://{username}:{password}@{host_ip}:{host_port}'
ELASTIC_SEARCH_URL = ELK_BASE_URL.format(
username='ELASTICSEARCH_USER',
password='ELASTICSEARCH_PASS',
host_ip='localhost',
host_port='9200'
)
ELASTICSEARCH_DSL = {
'default': {
'hosts': [ELASTIC_SEARCH_URL]
},
}
或者您可以只使用:
ELASTICSEARCH_DSL = {
'default': {
'hosts': 'http://localhost:9200'
},
}