python ES连接服务器的方法详解

 更新时间:2024年10月25日 08:56:32   作者:TS86  
使用Python连接Elasticsearch服务器进行数据搜索和分析是一项常见操作,本文详细介绍了如何使用elasticsearch-py客户端库连接到Elasticsearch服务器,并执行创建索引、添加文档及搜索等基本操作

连接Elasticsearch(ES)服务器是进行数据搜索和分析的常用操作。Elasticsearch是一个基于Lucene的搜索引擎,提供了RESTful API来进行索引、搜索和管理数据。

以下是一个详细的Python代码示例,展示如何连接到Elasticsearch服务器并执行一些基本操作。这个示例使用了官方的elasticsearch-py客户端库。

1. 安装Elasticsearch客户端库

首先,你需要安装elasticsearch库。如果你还没有安装,可以使用pip进行安装:

pip install elasticsearch

2. 连接到Elasticsearch服务器

以下是一个完整的Python脚本,展示了如何连接到Elasticsearch服务器,创建索引,添加文档,并进行搜索。

from elasticsearch import Elasticsearch, helpers  
# 配置Elasticsearch连接  
es = Elasticsearch(  
    ['http://localhost:9200'],  # Elasticsearch服务器地址和端口  
    http_auth=('username', 'password'),  # 如果需要认证,填写用户名和密码  
    use_ssl=False,  # 如果使用HTTPS,设置为True  
    verify_certs=False  # 如果使用HTTPS且自签名证书,设置为False  
)  
# 检查连接是否成功  
if es.ping():  
    print("Successfully connected to Elasticsearch!")  
else:  
    print("Could not connect to Elasticsearch")  
    exit()  
# 创建索引  
index_name = 'my_index'  
if not es.indices.exists(index=index_name):  
    # 定义索引的映射(Schema)  
    mappings = {  
        'properties': {  
            'title': {'type': 'text'},  
            'content': {'type': 'text'},  
            'author': {'type': 'keyword'}  
        }  
    }  
    # 创建索引  
    es.indices.create(index=index_name, body={'mappings': mappings})  
    print(f"Index '{index_name}' created successfully.")  
else:  
    print(f"Index '{index_name}' already exists.")  
# 添加文档  
documents = [  
    {"_id": 1, "title": "Elasticsearch Basics", "content": "Learn the basics of Elasticsearch.", "author": "John Doe"},  
    {"_id": 2, "title": "Advanced Elasticsearch", "content": "Go deeper into Elasticsearch features.", "author": "Jane Smith"},  
    {"_id": 3, "title": "Elasticsearch Performance", "content": "Optimize Elasticsearch for performance.", "author": "Alice Johnson"}  
]  
# 使用bulk API批量添加文档  
actions = [  
    {  
        "_index": index_name,  
        "_id": doc['_id'],  
        "_source": doc  
    }  
    for doc in documents  
]  
helpers.bulk(es, actions)  
print("Documents added successfully.")  
# 搜索文档  
search_body = {  
    "query": {  
        "match": {  
            "content": "Elasticsearch"  
        }  
    }  
}  
response = es.search(index=index_name, body=search_body)  
print("Search results:")  
for hit in response['hits']['hits']:  
    print(hit['_source'])  
# 清理(可选):删除索引  
# es.indices.delete(index=index_name)  
# print(f"Index '{index_name}' deleted successfully.")

3.代码解释

  • 连接配置:
    • Elasticsearch(['http://localhost:9200']):连接到运行在本地主机上的Elasticsearch服务器,默认端口为9200。
    • http_auth=('username', 'password'):如果Elasticsearch服务器需要认证,填写用户名和密码。
    • use_sslverify_certs:如果连接使用HTTPS,可以启用这些选项。
  • 检查连接:
    • 使用es.ping()方法检查连接是否成功。
  • 创建索引:
    • 使用es.indices.exists(index=index_name)检查索引是否存在。
    • 使用es.indices.create(index=index_name, body={'mappings': mappings})创建索引,并定义文档的映射。
  • 添加文档:
    • 使用helpers.bulk(es, actions)批量添加文档到索引中。
  • 搜索文档:
    • 使用es.search(index=index_name, body=search_body)进行搜索,并打印搜索结果。
  • 清理(可选):
    • 使用es.indices.delete(index=index_name)删除索引。

4.注意事项

  • 服务器地址:确保Elasticsearch服务器正在运行,并且地址和端口配置正确。
  • 认证:如果Elasticsearch服务器需要认证,确保提供正确的用户名和密码。
  • SSL:如果连接使用HTTPS,请正确配置use_sslverify_certs选项。

到此这篇关于python ES连接服务器的方法的文章就介绍到这了,更多相关python ES连接服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用低通滤波器模糊图像功能实现

    Python使用低通滤波器模糊图像功能实现

    这篇文章主要介绍了Python使用低通滤波器模糊图像,我们介绍了多种不同类型的滤波器核与卷积操作,使用 scipy.ndimage 模块中的滤波器模糊图像,利用 scipy.fftpack 模块的 fft2() 函数实现高斯模糊,介绍了scipy.signal模块的彩色图像频域卷积,需要的朋友可以参考下
    2023-03-03
  • Python的赋值、深拷贝与浅拷贝的区别详解

    Python的赋值、深拷贝与浅拷贝的区别详解

    这篇文章主要介绍了Python的赋值、深拷贝与浅拷贝的区别,需要的朋友可以参考下
    2020-02-02
  • pandas解决空列表问题

    pandas解决空列表问题

    本文主要介绍了Python的pandas库中高效处理空列表的问题,包括识别、过滤、替换和聚合操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python flask项目打包成docker镜像发布的过程

    python flask项目打包成docker镜像发布的过程

    这篇文章主要介绍了python flask项目打包成docker镜像发布,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • pytorch--之halfTensor的使用详解

    pytorch--之halfTensor的使用详解

    这篇文章主要介绍了pytorch--之halfTensor的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python数据预处理常用的5个技巧

    Python数据预处理常用的5个技巧

    大家好,本篇文章主要讲的是Python数据预处理常用的5个技巧,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Python打印输出数组中全部元素

    Python打印输出数组中全部元素

    使用Python打印数组时会遇到一个问题,当打印的数组元素比较多时,会出现只打印出数组开始与结尾部分中间部分用省略省略了,下面的方法可以完美解决这个问题
    2018-03-03
  • 深入理解Python 代码优化详解

    深入理解Python 代码优化详解

    本文初步探讨了 python 常见的性能优化技巧以及如何借助工具来定位和分析程序的性能瓶颈,并提供了相关可以进行性能优化的工具或语言,希望能够更相关人员一些参考。
    2014-10-10
  • Python使用FastAPI制作一个视频流媒体平台

    Python使用FastAPI制作一个视频流媒体平台

    在构建视频流媒体平台时,用户认证与视频上传是两个至关重要的功能,FastAPI作为一个高效的Web框架,可以轻松处理这些需求,下面我们看看具体实现方法吧
    2025-04-04
  • 基于python实现cdn日志文件导入mysql进行分析

    基于python实现cdn日志文件导入mysql进行分析

    这篇文章主要介绍了基于python实现cdn日志文件导入mysql进行分析,本文以阿里云CDN日志作为辅助查询数据展开主题内容,其它云平台大同小异,需要的小伙伴可以参考一下
    2022-05-05

最新评论