elasticsearch教程 python
时间: 2025-01-02 19:37:09 浏览: 8
### 如何使用Python与Elasticsearch交互
#### 安装Elasticsearch客户端库
为了使Python能够与Elasticsearch进行通信,需先安装`elasticsearch-py`这个官方提供的Python客户端库。可以通过pip工具轻松完成这一过程[^4]。
```bash
pip install elasticsearch
```
#### 创建并配置Elasticsearch连接
建立到Elasticsearch集群的连接是必要的第一步,在这里会指定主机地址和其他可能需要的身份验证参数等[^3]。
```python
from elasticsearch import Elasticsearch
es = Elasticsearch(
["http://localhost:9200"], # 集群节点列表
http_auth=('elastic', 'password'), # 如果有认证需求的话
)
```
#### 创建索引
定义好映射之后就可以创建一个新的索引来存储特定类型的文档了。这一步骤对于确保后续的数据检索效率至关重要[^1]。
```python
index_name = "test-index"
if not es.indices.exists(index=index_name):
es.indices.create(index=index_name, body={
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"title": {"type": "text"},
"content": {"type": "text"}
}
}
})
```
#### 添加文档至索引内
向已存在的索引里增加新的记录或条目是非常简单的操作之一;只需要提供唯一的ID给每份文件即可[^2]。
```python
doc_id = 1
document = {
'title': 'Example Document',
'content': 'This is an example document.'
}
res = es.index(index=index_name, id=doc_id, body=document)
print(res['result'])
```
#### 执行搜索请求
当有了足够的数据存入后,则可以根据关键词或者其他条件来执行查询动作,从而获取满足要求的结果集。
```python
query_body = {
"_source": ["title", "content"],
"query": {
"match": {
"title": "example"
}
}
}
response = es.search(index=index_name, body=query_body)
for hit in response['hits']['hits']:
print(hit["_source"])
```
#### 更新现有文档的信息
如果想要修改某些字段的内容而不影响其他部分时,可以采用局部更新的方式来进行处理。
```python
update_doc = {'doc': {'title': 'Updated Example'}}
res = es.update(index=index_name, id=doc_id, body=update_doc)
print(res['result'])
```
#### 删除单个文档或者整个索引
无论是清理不再使用的资源还是纠正错误录入的数据项,都离不开这项功能的支持。
```python
# 删除单一文档
es.delete(index=index_name, id=doc_id)
# 或者删除整个索引(谨慎操作)
es.indices.delete(index=index_name)
```
阅读全文