容器建立Elasticsearch,使用Python執(zhí)行CRUD操作
我們將介紹如何使用Docker Compose設(shè)置Elasticsearch和Kibana,以及如何使用Python在Elasticsearch中進(jìn)行基本的CRUD操作。
Elasticsearch是一個(gè)流行的開源搜索引擎,旨在有效處理大量的數(shù)據(jù)。它是一個(gè)非關(guān)系型數(shù)據(jù)庫,使用JSON文檔來存儲(chǔ)數(shù)據(jù)。它被廣泛用于日志分析、數(shù)據(jù)分析和全文搜索。Elasticsearch通常與Kibana一起使用,Kibana是一個(gè)強(qiáng)大的可視化工具,可以幫助用戶分析和可視化存儲(chǔ)在Elasticsearch的數(shù)據(jù)。
集群。當(dāng)兩臺(tái)或更多的機(jī)器結(jié)合在一起,產(chǎn)生一個(gè)輸出時(shí),就形成了一個(gè)集群。在Elasticsearch中,當(dāng)多個(gè)節(jié)點(diǎn)結(jié)合在一起存儲(chǔ)和管理數(shù)據(jù)時(shí),就形成了一個(gè)集群。
節(jié)點(diǎn)。節(jié)點(diǎn)是Elasticsearch集群中的一臺(tái)機(jī)器,用于存儲(chǔ)數(shù)據(jù)并參與集群的搜索和索引功能。
索引。索引是具有某種類似特征的文檔的集合。在Elasticsearch中,索引類似于傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的表,數(shù)據(jù)存儲(chǔ)在那里。
文檔。文檔是Elasticsearch中最基本的數(shù)據(jù)單位。在傳統(tǒng)數(shù)據(jù)庫中,一行相當(dāng)于Elasticsearch中的一個(gè)文檔。
字段。字段類似于傳統(tǒng)數(shù)據(jù)庫中的列。索引中的每個(gè)文檔都有自己的字段集,定義文檔的屬性。
映射。在Elasticsearch中,映射是一種模式,定義了索引的字段和數(shù)據(jù)類型。
分片:Elasticsearch將一個(gè)索引分解成更小的片斷,稱為分片。每個(gè)分片都存儲(chǔ)在集群中的一個(gè)單獨(dú)的節(jié)點(diǎn)上,這有助于分布數(shù)據(jù)并提高搜索性能。
主分片:當(dāng)Elasticsearch為了安全而存儲(chǔ)多個(gè)數(shù)據(jù)副本時(shí),只有一個(gè)副本被指定為主分片,而其他的被稱為副本分片。
要用Docker Compose設(shè)置Elasticsearch和Kibana,請遵循以下步驟。
- 在你的機(jī)器上安裝Docker。
- 為你的項(xiàng)目創(chuàng)建一個(gè)新目錄,并在其中創(chuàng)建一個(gè)名為 "docker-compose.yml "的文件。
- 在 "docker-compose.yml "文件中添加以下內(nèi)容。
4. 保存文件并在終端運(yùn)行以下命令以啟動(dòng)服務(wù)。
5. 服務(wù)啟動(dòng)后,你可以在http://localhost:9200,在http://localhost:5601,訪問Elasticsearch和Kibana。
在用Docker Compose設(shè)置了Elasticsearch和Kibana之后,我們可以用Python在Elasticsearch中執(zhí)行基本的CRUD操作。在本節(jié)中,我們將介紹如何創(chuàng)建索引、添加文檔、搜索文檔、更新文檔和刪除文檔。
首先,我們需要通過運(yùn)行以下命令在Python中安裝Elasticsearch庫。
一旦庫安裝完畢,我們就可以開始執(zhí)行CRUD操作。下面是如何做到這一點(diǎn)。
- 創(chuàng)建一個(gè)Elasticsearch客戶端對(duì)象。
2. 創(chuàng)建一個(gè)索引。
3. 將文件添加到索引中。
4. 更新文件。
5. 搜索文件。
我們可以通過運(yùn)行 curl 命令來檢查索引是否已經(jīng)被創(chuàng)建。我們還可以通過運(yùn)行一個(gè)Python循環(huán)來一次創(chuàng)建多個(gè)索引。為了在Elasticsearch中搜索索引,我們可以編寫代碼來搜索特定的索引,或者搜索所有以某一前綴開始的索引。我們還可以使用Elasticsearch庫或通過讀取輸入文件來刪除索引。
我們看到了如何使用Docker Compose設(shè)置Elasticsearch和Kibana,以及如何使用Python對(duì)Elasticsearch進(jìn)行CRUD操作。Elasticsearch是一個(gè)強(qiáng)大的搜索和分析數(shù)據(jù)的工具,它可以使用其Python庫輕松地集成到你現(xiàn)有的項(xiàng)目中。