python?ES連接服務(wù)器的方法詳解
連接Elasticsearch(ES)服務(wù)器是進(jìn)行數(shù)據(jù)搜索和分析的常用操作。Elasticsearch是一個(gè)基于Lucene的搜索引擎,提供了RESTful API來(lái)進(jìn)行索引、搜索和管理數(shù)據(jù)。
以下是一個(gè)詳細(xì)的Python代碼示例,展示如何連接到Elasticsearch服務(wù)器并執(zhí)行一些基本操作。這個(gè)示例使用了官方的elasticsearch-py
客戶端庫(kù)。
1. 安裝Elasticsearch客戶端庫(kù)
首先,你需要安裝elasticsearch
庫(kù)。如果你還沒(méi)有安裝,可以使用pip進(jìn)行安裝:
pip install elasticsearch
2. 連接到Elasticsearch服務(wù)器
以下是一個(gè)完整的Python腳本,展示了如何連接到Elasticsearch服務(wù)器,創(chuàng)建索引,添加文檔,并進(jìn)行搜索。
from elasticsearch import Elasticsearch, helpers # 配置Elasticsearch連接 es = Elasticsearch( ['http://localhost:9200'], # Elasticsearch服務(wù)器地址和端口 http_auth=('username', 'password'), # 如果需要認(rèn)證,填寫(xiě)用戶名和密碼 use_ssl=False, # 如果使用HTTPS,設(shè)置為T(mén)rue verify_certs=False # 如果使用HTTPS且自簽名證書(shū),設(shè)置為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.代碼解釋
- 連接配置:
Elasticsearch(['http://localhost:9200'])
:連接到運(yùn)行在本地主機(jī)上的Elasticsearch服務(wù)器,默認(rèn)端口為9200。http_auth=('username', 'password')
:如果Elasticsearch服務(wù)器需要認(rèn)證,填寫(xiě)用戶名和密碼。use_ssl
和verify_certs
:如果連接使用HTTPS,可以啟用這些選項(xiàng)。
- 檢查連接:
- 使用
es.ping()
方法檢查連接是否成功。
- 使用
- 創(chuàng)建索引:
- 使用
es.indices.exists(index=index_name)
檢查索引是否存在。 - 使用
es.indices.create(index=index_name, body={'mappings': mappings})
創(chuàng)建索引,并定義文檔的映射。
- 使用
- 添加文檔:
- 使用
helpers.bulk(es, actions)
批量添加文檔到索引中。
- 使用
- 搜索文檔:
- 使用
es.search(index=index_name, body=search_body)
進(jìn)行搜索,并打印搜索結(jié)果。
- 使用
- 清理(可選):
- 使用
es.indices.delete(index=index_name)
刪除索引。
- 使用
4.注意事項(xiàng)
- 服務(wù)器地址:確保Elasticsearch服務(wù)器正在運(yùn)行,并且地址和端口配置正確。
- 認(rèn)證:如果Elasticsearch服務(wù)器需要認(rèn)證,確保提供正確的用戶名和密碼。
- SSL:如果連接使用HTTPS,請(qǐng)正確配置
use_ssl
和verify_certs
選項(xiàng)。
到此這篇關(guān)于python ES連接服務(wù)器的方法的文章就介紹到這了,更多相關(guān)python ES連接服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 利用Python創(chuàng)建API服務(wù)器并處理RESTful請(qǐng)求
- 如何使用Python連接?SSH?服務(wù)器并執(zhí)行命令
- python連接FTP服務(wù)器的實(shí)現(xiàn)方法
- python socket多線程實(shí)現(xiàn)客戶端與服務(wù)器連接
- Python使用paramiko連接遠(yuǎn)程服務(wù)器執(zhí)行Shell命令的實(shí)現(xiàn)
- pycharm遠(yuǎn)程連接服務(wù)器并配置python interpreter的方法
- mac 上配置Pycharm連接遠(yuǎn)程服務(wù)器并實(shí)現(xiàn)使用遠(yuǎn)程服務(wù)器Python解釋器的方法
相關(guān)文章
Python使用低通濾波器模糊圖像功能實(shí)現(xiàn)
這篇文章主要介紹了Python使用低通濾波器模糊圖像,我們介紹了多種不同類(lèi)型的濾波器核與卷積操作,使用 scipy.ndimage 模塊中的濾波器模糊圖像,利用 scipy.fftpack 模塊的 fft2() 函數(shù)實(shí)現(xiàn)高斯模糊,介紹了scipy.signal模塊的彩色圖像頻域卷積,需要的朋友可以參考下2023-03-03python?flask項(xiàng)目打包成docker鏡像發(fā)布的過(guò)程
這篇文章主要介紹了python?flask項(xiàng)目打包成docker鏡像發(fā)布,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Python數(shù)據(jù)預(yù)處理常用的5個(gè)技巧
大家好,本篇文章主要講的是Python數(shù)據(jù)預(yù)處理常用的5個(gè)技巧,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02Python使用FastAPI制作一個(gè)視頻流媒體平臺(tái)
在構(gòu)建視頻流媒體平臺(tái)時(shí),用戶認(rèn)證與視頻上傳是兩個(gè)至關(guān)重要的功能,FastAPI作為一個(gè)高效的Web框架,可以輕松處理這些需求,下面我們看看具體實(shí)現(xiàn)方法吧2025-04-04基于python實(shí)現(xiàn)cdn日志文件導(dǎo)入mysql進(jìn)行分析
這篇文章主要介紹了基于python實(shí)現(xiàn)cdn日志文件導(dǎo)入mysql進(jìn)行分析,本文以阿里云CDN日志作為輔助查詢(xún)數(shù)據(jù)展開(kāi)主題內(nèi)容,其它云平臺(tái)大同小異,需要的小伙伴可以參考一下2022-05-05