自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

容器建立Elasticsearch,使用Python執(zhí)行CRUD操作

開源
Elasticsearch是一個(gè)流行的開源搜索引擎,旨在有效處理大量的數(shù)據(jù)。它是一個(gè)非關(guān)系型數(shù)據(jù)庫,使用JSON文檔來存儲(chǔ)數(shù)據(jù)。它被廣泛用于日志分析、數(shù)據(jù)分析和全文搜索。

我們將介紹如何使用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,請遵循以下步驟。

  1. 在你的機(jī)器上安裝Docker。
  2. 為你的項(xiàng)目創(chuàng)建一個(gè)新目錄,并在其中創(chuàng)建一個(gè)名為 "docker-compose.yml "的文件。
  3. 在 "docker-compose.yml "文件中添加以下內(nèi)容。
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
volumes:
- esdata:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.17.0
container_name: kibana
ports:
- "5601:5601"
environment:
ELASTICSEARCH_URL: http://elasticsearch:9200
depends_on:
- elasticsearch
volumes:
esdata:

4. 保存文件并在終端運(yùn)行以下命令以啟動(dòng)服務(wù)。

docker-compose up

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庫。

pip install elasticsearch

一旦庫安裝完畢,我們就可以開始執(zhí)行CRUD操作。下面是如何做到這一點(diǎn)。

  1. 創(chuàng)建一個(gè)Elasticsearch客戶端對(duì)象。
from elasticsearch import Elasticsearch

es = Elasticsearch([{'host': 'localhost', 'port': 9200}])

2. 創(chuàng)建一個(gè)索引。

index_name = 'my_elasticsearch_index'

es.indices.create(index=index_name)

3. 將文件添加到索引中。

index_name = 'my_elasticsearch_index'
document1 = {
'name': 'Dhruval',
'age': 30,
'city': 'Vadodara'
}

document2 = {
'name': 'Mary',
'age': 25,
'city': 'Los Angeles'
}

es.index(index=index_name, body=document1)
es.index(index=index_name, body=document2)

4. 更新文件。

index_name = 'my_elasticsearch_index'
doc_id = '1'

# Define the update query
update_query = {
"doc": {
"title": "New title",
"content": "Updated content"
}
}

# Update the document
es.update(index=index_name, doc_type=doc_type, id=doc_id, body=update_query)

5. 搜索文件。

index_name = 'my_elasticsearch_index'
search_term = 'Dhruval'

query = {
'query': {
'match': {
'name': search_term
}
}
}

results = es.search(index=index_name, body=query)

for result in results['hits']['hits']:
print(result['_source'])

我們可以通過運(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)目中。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-11-04 15:46:03

GORMGo

2010-02-25 10:46:44

Linux操作系統(tǒng)

2024-12-23 13:31:38

2016-10-08 15:42:02

ElasticsearcAdvisorDocke

2024-03-01 09:57:19

數(shù)據(jù)庫檢索項(xiàng)目

2024-03-26 12:28:59

.NET 8開發(fā)

2023-09-05 07:40:37

PythonSDKAPI

2018-05-30 10:04:38

容器技術(shù)微服務(wù)

2015-03-06 15:31:01

2017-06-13 16:40:42

Azure容器Kubernetes

2014-01-15 10:04:38

LXCLinux 容器Linux 內(nèi)核

2016-11-03 18:54:06

Java數(shù)據(jù)庫

2009-12-28 10:03:58

ADO 對(duì)象

2009-08-13 15:16:00

Eclipse建立We

2020-09-07 11:30:47

ElasticSear索引Linux

2024-11-18 16:24:19

SVN開發(fā)Python

2021-03-18 15:10:42

ElasticSearBeta日志

2023-02-02 09:47:39

estext類型

2014-11-19 09:22:48

云計(jì)算Dockerpython API

2022-09-06 12:20:30

Vue3CVCRUD
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)