您的位置:首頁 > 軟件教程 > 教程 > 連接Elasticsearch服務器的Python代碼示例

連接Elasticsearch服務器的Python代碼示例

來源:好特整理 | 時間:2024-10-25 09:46:34 | 閱讀:116 |  標簽: a T last El S C AR 服務 代碼 服務器 EA cs Python   | 分享到:

連接Elasticsearch(ES)服務器是進行數據搜索和分析的常用操作。Elasticsearch是一個基于Lucene的搜索引擎,提供了RESTful API來進行索引、搜索和管理數據。

連接Elasticsearch(ES)服務器是進行數據搜索和分析的常用操作。Elasticsearch是一個基于Lucene的搜索引擎,提供了RESTful API來進行索引、搜索和管理數據。

以下是一個詳細的Python代碼示例,展示如何連接到Elasticsearch服務器并執(zhí)行一些基本操作。這個示例使用了官方的 elasticsearch-py 客戶端庫。

1. 安裝Elasticsearch客戶端庫

首先,你需要安裝 elasticsearch 庫。如果你還沒有安裝,可以使用pip進行安裝:

bash
pip install elasticsearch

2. 連接到Elasticsearch服務器

以下是一個完整的Python腳本,展示了如何連接到Elasticsearch服務器,創(chuàng)建索引,添加文檔,并進行搜索。

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()  
  
# 創(chuàng)建索引  
index_name = 'my_index'  
if not es.indices.exists(index=index_name):  
    # 定義索引的映射(Schema)  
    mappings = {  
        'properties': {  
            'title': {'type': 'text'},  
            'content': {'type': 'text'},  
            'author': {'type': 'keyword'}  
        }  
    }  
    # 創(chuàng)建索引  
    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. 代碼解釋

  1. 連接配置:
    • Elasticsearch(['http://localhost:9200']) :連接到運行在本地主機上的Elasticsearch服務器,默認端口為9200。
    • http_auth=('username', 'password') :如果Elasticsearch服務器需要認證,填寫用戶名和密碼。
    • use_ssl verify_certs :如果連接使用HTTPS,可以啟用這些選項。
  2. 檢查連接:
    • 使用 es.ping() 方法檢查連接是否成功。
  3. 創(chuàng)建索引:
    • 使用 es.indices.exists(index=index_name) 檢查索引是否存在。
    • 使用 es.indices.create(index=index_name, body={'mappings': mappings}) 創(chuàng)建索引,并定義文檔的映射。
  4. 添加文檔:
    • 使用 helpers.bulk(es, actions) 批量添加文檔到索引中。
  5. 搜索文檔:
    • 使用 es.search(index=index_name, body=search_body) 進行搜索,并打印搜索結果。
  6. 清理(可選):
    • 使用 es.indices.delete(index=index_name) 刪除索引。

4. 注意事項

  • 服務器地址 :確保Elasticsearch服務器正在運行,并且地址和端口配置正確。
  • 認證 :如果Elasticsearch服務器需要認證,確保提供正確的用戶名和密碼。
  • SSL :如果連接使用HTTPS,請正確配置 use_ssl verify_certs 選項。

小編推薦閱讀

好特網發(fā)布此文僅為傳遞信息,不代表好特網認同期限觀點或證實其描述。

a 1.0
a 1.0
類型:休閑益智  運營狀態(tài):正式運營  語言:中文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《alittletotheleft》官網正版是一款備受歡迎的休閑益智整理游戲。玩家的任務是對日常生活中的各種雜亂物

相關視頻攻略

更多

掃二維碼進入好特網手機版本!

掃二維碼進入好特網微信公眾號!

本站所有軟件,都由網友上傳,如有侵犯你的版權,請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網安備:43070202000427號© 2013~2024 haote.com 好特網