本文介绍如何使用 Python 语言连接 OpenSearch 实例,并为您提供示例代码和注意事项。
安装 OpenSearch Python 客户端的命令如下:
pip install opensearch-py
该场景适用于连接访问方式为 HTTP 的 OpenSearch 实例。
示例代码如下:
from opensearchpy import OpenSearch # 创建 OpenSearch 客户端连接。 client = OpenSearch( hosts=['{实例访问域名}', '9200'], scheme="http", http_auth=('admin', '{admin用户密码}'), ) # 创建索引,根据需要设置 settings、mappings,以及字段信息。 index_name = '{索引名称}' index_body = { 'settings': { 'number_of_shards': 3, 'number_of_replicas': 1 }, 'mappings': { 'properties': { 'name': { 'type': 'text' }, 'age': { 'type': 'integer' } } } } response = client.indices.create(index=index_name, body=index_body) print(response)
运行程序,返回如下类似信息:
{'acknowledged': True, 'shards_acknowledged': True, 'index': 'custom-index'}
该场景适用于连接访问方式为 HTTPS 的 OpenSearch 实例,且连接过程需要校验证书。
示例代码如下:
from opensearchpy import OpenSearch # 创建 OpenSearch 客户端连接。 client = OpenSearch( hosts=['{实例访问域名}', '9200'], scheme="https", http_auth=('admin', '{admin用户密码}'), ca_certs = '{证书保存路径}' ) # 创建索引,根据需要设置 settings、mappings,以及字段信息。 index_name = '{索引名称}' index_body = { 'settings': { 'number_of_shards': 3, 'number_of_replicas': 1 }, 'mappings': { 'properties': { 'name': { 'type': 'text' }, 'age': { 'type': 'integer' } } } } response = client.indices.create(index=index_name, body=index_body) print(response)
运行程序,返回如下类似信息:
{'acknowledged': True, 'shards_acknowledged': True, 'index': 'custom-index'}
该场景适用于连接访问方式为 HTTPS 的 OpenSearch 实例,且连接过程忽略证书。
示例代码如下:
from opensearchpy import OpenSearch # 创建 OpenSearch 客户端连接。 client = OpenSearch( hosts=['{实例访问域名}', '9200'], scheme="https", http_auth=('admin', '{admin用户密码}'), use_ssl=True, verify_certs=False, ssl_assert_hostname=False, ssl_show_warn=False ) # 创建索引,根据需要设置 settings、mappings,以及字段信息。 index_name = '{索引名称}' index_body = { 'settings': { 'number_of_shards': 3, 'number_of_replicas': 1 }, 'mappings': { 'properties': { 'name': { 'type': 'text' }, 'age': { 'type': 'integer' } } } } response = client.indices.create(index=index_name, body=index_body) print(response)
运行程序,返回如下类似信息:
{'acknowledged': True, 'shards_acknowledged': True, 'index': 'custom-index'}