安装elasticsearch sdk
pip install elasticsearch
示例代码
python
from elasticsearch import Elasticsearch # type: ignore
import json
username = "your username"
password = "your password"
es = Elasticsearch("https://your server ip:9200", ca_certs="/your ca_certs path/certs/http_ca.crt", # 指定 CA 证书路径
basic_auth=(username, password)
)
class TestDataModel:
def __init__(self, data):
self.data1 = data.get("data1", None)
self.data2 = data.get("data2", None)
self.data3 = data.get("data3", None)
self.data4 = data.get("data4", None)
def readjson2elasticsearch(file_path, es):
if es.ping():
print("连接成功")
if not es.indices.exists(index="test_index"):
es.indices.create(index="test_index", mappings={
"properties": {
"data1": {"type": "text", "fields": {"raw": {"type": "keyword"}}},
"data2": {"type": "text", "index": False},
"data3": {"type": "text"},
"data4": {"type": "object"}
}
})
print("索引 test_index 创建成功")
with open(file_path, 'r') as f:
count = 0
for line in f:
data = json.loads(line.strip())
model = TestDataModel(data)
es.index(index="test_index", document={
"data1": model.data1,
"data2": model.data2,
"data3": model.data3,
"data4": model.data4
})
count += 1
print(f"已导入 {count} 条数据")
print("数据导入完成")
else:
print("连接失败")
# es.indices.delete(index="test_index")
file_path = "/your data path/test_json_data.txt"
readjson2elasticsearch(file_path, es)