ES索引原理与代码实例讲解
from datetime import datetime
from elasticsearch import Elasticsearch
# 假设我们有一个Elasticsearch集群可用
es = Elasticsearch(hosts=["localhost:9200"])
# 创建一个新的索引
index_name = 'test_index'
doc_type = 'test_type'
# 使用Elasticsearch的索引API创建索引
response = es.indices.create(index=index_name, ignore=400)
print(f"索引创建结果: {response}")
# 索引一个文档
doc_id = 1
document = {
'name': 'John Doe',
'email': 'john@example.com',
'timestamp': datetime.now().isoformat()
}
# 使用Elasticsearch的文档索引API索引文档
response = es.index(index=index_name, doc_type=doc_type, id=doc_id, body=document)
print(f"文档索引结果: {response}")
# 更新一个文档
doc_id = 1
update_script = {
'source': 'ctx._source.email = params.email',
'params': {
'email': 'newemail@example.com'
}
}
# 使用Elasticsearch的更新API更新文档
response = es.update(index=index_name, doc_type=doc_type, id=doc_id, body=update_script)
print(f"文档更新结果: {response}")
# 搜索文档
query = {
'query': {
'match': {
'name': 'John'
}
}
}
# 使用Elasticsearch的搜索API搜索文档
response = es.search(index=index_name, doc_type=doc_type, body=query)
print(f"搜索结果: {response}")
# 删除索引
response = es.indices.delete(index=index_name, ignore=[400, 404])
print(f"索引删除结果: {response}")
这段代码展示了如何使用Elasticsearch Python API进行索引的创建、文档的索引、文档的更新、文档的搜索以及索引的删除。代码中的每一步都有详细的注释,并且使用了Elasticsearch的最新API(如indices.create和index方法),这些都是在Elasticsearch 7.x中推荐使用的方法。
评论已关闭