Вы можете получить доступ к кластеру Elasticsearch, созданному в CSS, с помощью Python.
1pip install Elasticsearch==7.6
123456789101112131415161718192021222324из elasticsearch импорт Elasticsearchкласс ElasticFactory(объект):def __init__(self, Хост: list, порт: str, username: str, пароль: строка):self.порт = портself.хост = хостself.имя пользователя = имя пользователяself.пароль = парольdef создать(self) -> Elasticsearch:addrs = []for host in self.host:addr = {'host': host, 'port': self.порт}адреса.добавить(адрес)если self.имя_пользователя и self.пароль:elasticsearch = Elasticsearch(адреса, http_auth=(self.username, self.password))else:elasticsearch = Elasticsearch(addrs)return elasticsearches = ElasticFactory(["xxx.xxx.xxx.xxx"], "9200", Нет, Нет).create()print(es.indices.exists(index='test'))
123456789101112131415161718192021222324из elasticsearch импорт Elasticsearchкласс ElasticFactory(object):def __init__(self, host: list, port: str, username: str, password: str):self.порт = портself.Хост = Хостself.имя пользователя = имя пользователяself.пароль = парольdef создать(self) -> Elasticsearch:addrs = []for host in self.host:addr = {'host': host, 'port': self.port}addrs.append(addr)если self.имя пользователя и self.пароль:elasticsearch = Elasticsearch(addrs, http_auth=(self.имя пользователя, self.пароль))else:elasticsearch = Elasticsearch(addrs)return elasticsearches = ElasticFactory(["xxx.xxx.xxx.xxx"], "9200", "username", "password").создать()печать(es.индексы.существует(индекс='test'))
123456789101112131415161718192021222324252627из elasticsearch импорт Elasticsearchимпорт sslкласс ElasticFactory(объект):def __init__(self, хост: список, порт: str, имя_пользователя: str, пароль: str):self.порт = портself.хост = хостself.имя пользователя = имя пользователяself.пароль = парольdef создать(self) -> Elasticsearch:контекст = ssl._create_unverified_context()addrs = []for host in self.host:addr = {'host': host, 'port': self.порт}addrs.append(addr)if self.username and self.password:elasticsearch = Elasticsearch(addrs, http_auth=(self.username, self.password), scheme="https", ssl_context=context)else:elasticsearch = Elasticsearch(addrs)return elasticsearches = ElasticFactory(["xxx.xxx.xxx.xxx"], "9200", "username", "password").create()print(es.indices.exists(index='test'))
Параметр | Описание |
|---|---|
хост | IP адрес для доступа к кластеру Elasticsearch. Если несколько IP‑адресов, разделите их запятыми (,). |
порт | Порт доступа к кластеру Elasticsearch. Введите 9200. |
имя пользователя | Имя пользователя для доступа к кластеру. |
пароль | Пароль пользователя. |
123456789101112отображения = {"settings": {"index": {"number_of_shards": number_of_shards,"number_of_replicas": 1,},},"mappings": {свойства}}результат = es.индексы.создать(индекс=индекс, тело=отображения)
12345678тело = {"query": {"match": {"Поле запроса": "Содержимое запроса"}}}результат = es.поиск(индекс=индекс, тело=тело)