(Rest风格API)Elasticsearch索引操作、映射配置、数据操作、查询操作
from datetime import datetime
from elasticsearch import Elasticsearch
# 连接到Elasticsearch
es = Elasticsearch("http://localhost:9200")
# 索引操作
def index_operations():
# 创建索引
es.indices.create(index='customer', ignore=400) # 如果索引已存在会抛出错误,可以设置ignore=400忽略
# 获取索引信息
index_info = es.indices.get('customer')
print(index_info)
# 判断索引是否存在
index_exists = es.indices.exists('customer')
print(index_exists)
# 删除索引
es.indices.delete(index='customer', ignore=[400, 404]) # 如果索引不存在会抛出错误,可以设置ignore=[400, 404]忽略
# 映射配置
def mapping_configuration():
# 定义索引映射
mappings = {
"properties": {
"name": {
"type": "text"
},
"email": {
"type": "keyword"
},
"timestamp": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
# 创建索引并定义映射
es.indices.create(index='customer', body=mappings)
# 数据操作
def data_operations():
# 添加文档
data = {
"name": "John Doe",
"email": "johndoe@example.com",
"timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
es.index(index="customer", id=1, document=data)
# 获取文档
doc = es.get(index="customer", id=1)
print(doc)
# 更新文档
data_update = {
"doc": {
"email": "johndoe@updated.com"
}
}
es.update(index="customer", id=1, document=data_update)
# 删除文档
es.delete(index="customer", id=1)
# 查询操作
def search_operations():
# 搜索所有文档
search_response = es.search(index="customer")
print(search_response['hits']['hits'])
# 执行索引操作
index_operations()
# 执行映射配置
mapping_configuration()
# 执行数据操作
data_operations()
# 执行查询操作
search_operations()
这段代码展示了如何在Python中使用Elasticsearch Python API进行索引的创建、获取、删除,以及如何定义映射配置。同时,还演示了文档的添加、获取、更新和删除操作,以及如何执行基本的搜索查询。
评论已关闭