Elasticsearch 提供了官方的 Python 客户端库 elasticsearch-py
,它是与 Elasticsearch 进行交互的主要工具。这个库允许你通过 Python 代码来执行 Elasticsearch 的各种操作,包括索引、搜索、更新和删除文档等。
安装 elasticsearch-py
首先,你需要安装 elasticsearch
库。你可以使用 pip
进行安装:
pip install elasticsearch
基本用法
以下是一些常见操作的示例,包括连接到 Elasticsearch 集群、创建索引、插入文档、查询文档和删除索引。
1. 连接到 Elasticsearch
from elasticsearch import Elasticsearch
# 创建 Elasticsearch 客户端实例
es = Elasticsearch(["http://localhost:9200"])
# 检查连接状态
if es.ping():
print("Connected to Elasticsearch")
else:
print("Could not connect to Elasticsearch")
2. 创建索引
index_name = "lntest"
mapping = {
"mappings": {
"properties": {
"info": {
"type": "text",
"analyzer": "ik_smart"
},
"email": {
"type": "keyword",
"index": False
},
"name": {
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
# 创建索引
es.indices.create(index=index_name, body=mapping)
3. 插入文档
doc = {
"info": "实验的",
"email": "123@qq.com",
"name": {
"firstName": "张",
"lastName": "三"
}
}
# 插入文档
es.index(index=index_name, id=1, body=doc)
4. 查询文档
# 查询索引中的所有文档
response = es.search(index=index_name, body={"query": {"match_all": {}}})
# 打印查询结果
print(response)
5. 删除索引
# 删除索引
es.indices.delete(index=index_name)
完整示例
以下是一个完整的示例,涵盖了连接到 Elasticsearch、创建索引、插入文档、查询文档和删除索引的所有步骤:
from elasticsearch import Elasticsearch
# 创建 Elasticsearch 客户端实例
es = Elasticsearch(["http://localhost:9200"])
# 检查连接状态
if es.ping():
print("Connected to Elasticsearch")
else:
print("Could not connect to Elasticsearch")
# 定义索引名称和映射
index_name = "lntest"
mapping = {
"mappings": {
"properties": {
"info": {
"type": "text",
"analyzer": "ik_smart"
},
"email": {
"type": "keyword",
"index": False
},
"name": {
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
# 创建索引
es.indices.create(index=index_name, body=mapping)
# 定义文档
doc = {
"info": "实验的",
"email": "123@qq.com",
"name": {
"firstName": "张",
"lastName": "三"
}
}
# 插入文档
es.index(index=index_name, id=1, body=doc)
# 查询索引中的所有文档
response = es.search(index=index_name, body={"query": {"match_all": {}}})
# 打印查询结果
print(response)
# 删除索引
es.indices.delete(index=index_name)
通过这些步骤,你应该能够使用 Python 客户端与 Elasticsearch 进行交互并执行各种操作。如果还有其他问题,请随时告诉我!