5個 Elasticsearch 核心組件

Elasticsearch 是一個基于 Lucene 的搜索引擎,它提供了分布式、高可用、多租戶的能力。Elasticsearch 的核心組件包括節點(Node)、集群(Cluster)、索引(Index)、分片(Shard)、副本(Replica)等。下面我將結合案例代碼解釋和說明這些核心組件。

節點(Node)

節點是 Elasticsearch 集群中的一個服務器,它負責存儲數據和處理客戶端請求。節點可以通過配置文件或啟動參數設置角色,如主節點(Master)、數據節點(Data)、客戶端節點(Client)等。

案例代碼:

// 創建一個節點設置
Settings settings = Settings.builder().put("node.name", "node-1").put("cluster.name", "my-cluster").put("path.data", "/path/to/data").put("path.logs", "/path/to/logs").build();// 創建一個節點
Node node = new Node(settings);

集群(Cluster)

集群是由一個或多個節點組成的,它們共同協作提供數據的存儲和搜索服務。集群通過集群名稱來區分,確保不同集群之間不會發生數據共享。

案例代碼:

// 創建一個集群客戶端
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));// 關閉客戶端
client.close();

索引(Index)

索引是具有相似特征的文檔集合。索引可以包含一個或多個類型(Type),每種類型都有自己的字段映射。在 Elasticsearch 7.x 版本中,一個索引只能包含一個類型。

案例代碼:

// 創建一個索引
CreateIndexRequest request = new CreateIndexRequest("my-index");
client.admin().indices().create(request).actionGet();

分片(Shard)

分片是索引數據的子集,它可以將一個大的索引拆分成多個部分,分布在不同的節點上。分片可以是主分片(Primary Shard)或副本分片(Replica Shard)。

案例代碼:

// 創建一個索引,設置分片數量和副本數量
request = new CreateIndexRequest("my-index").settings(Settings.builder().put("number_of_shards", 3).put("number_of_replicas", 2));
client.admin().indices().create(request).actionGet();

副本(Replica)

副本是分片的復制,可以提高數據的可用性和搜索性能。副本可以分布在不同的節點上,當主分片發生故障時,副本可以升級為主分片。

案例代碼:


// 更新索引副本數量
UpdateIndexRequest updateRequest = new UpdateIndexRequest("my-index").settings(Settings.builder().put("number_of_replicas", 1));
client.admin().indices().updateSettings(updateRequest).actionGet();

以上是 Elasticsearch 核心組件的簡要介紹和案例代碼解釋。要深入了解這些組件的原理和實現,建議閱讀 Elasticsearch 官方文檔和源碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10051.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

三下鄉社會實踐投稿攻略在這里

在當今信息爆炸的時代,如何讓自己的聲音被更多人聽到,成為許多人和企業所關心的問題。其中,向各大媒體網站投稿,成為了一種常見的宣傳方式。但是,如何投稿各大媒體網站?新聞媒體發文策略又有哪些呢&#xf…

Flutter Clipboard實現復制功能

Flutter內置了Clipboard 功能,可以幫助我們完成復制粘貼的功能,比如我們想把“hello flutter”復制到粘貼板,代碼如下: TextButton(onPressed: () async {await Clipboard.setData(ClipboardData(text: hello flutter)

基于SpringBoot設計模式之開端

文章目錄 前言引言開始 前言 為了更好的在項目中,能更加優雅的使用設計模式,比較針對性的解決我們的問題。我將在這個專欄詳細的描述23種設計模式,為了與時俱進,我打算通過springboot的形式將23種設計模式全部擼完! 引…

光耦推薦—高速風筒方案中用到哪些光耦型號

高速風筒是現代生活中常見的電器設備,廣泛應用于家庭、商業和工業領域;光耦是一種能夠將輸入信號轉換成輸出信號的元器件,其作用在于將電氣信號轉換成光信號,從而實現電路的隔離和保護;采用光耦可實現對風機轉速和溫度…

【管理咨詢寶藏99】離散制造智能工廠戰略規劃方案

本報告首發于公號“管理咨詢寶藏”,如需閱讀完整版報告內容,請查閱公號“管理咨詢寶藏”。 【管理咨詢寶藏99】離散制造智能工廠戰略規劃方案 【格式】PDF版本 【關鍵詞】智能制造、先進制造業轉型、數字化轉型 【核心觀點】 - 推進EHS、品質一致性、生…

【無標題】QCC 308x 518x 517x增加usb voice 32k采樣率

QCC 308x 518x 517x增加usb voice 32k采樣率 diff --git a/adk/src/domains/audio/kymera/kymera_usb_voice.c b/adk/src/domains/audio/kymera/kymera_usb_voice.c index 6dd82061..532c4ad8 100755 --- a/adk/src/domains/audio/kymera/kymera_usb_voice.c +++ b/adk/src/dom…

Failed to start tomcat.service: Unit is not loaded properly: Bad message 如何解決?

錯誤 “Failed to start tomcat.service: Unit is not loaded properly: Bad message” 通常意味著的 tomcat.service systemd 配置文件存在語法錯誤或配置不正確。為了解決這個問題,一步步檢查和修正這個服務文件。 1. 檢查 tomcat.service 文件 首先&#xff0c…

CSS文字描邊,文字間隔,div自定義形狀切割

clip-path: polygon( 0 0, 68% 0, 100% 32%, 100% 100%, 0 100% );//這里切割出來是少一角的正方形 letter-spacing: 1vw; //文字間隔 -webkit-text-stroke: 1px #fff; //文字描邊1px uniapp微信小程序頂部導航欄設置透明,下拉改變透明度 onP…

Docker部署RabbitMQ集群(單服務器多端口)

rabbitmq.conf在mq1、mq2、mq3下 ####文件內容 loopback_users.guest false listeners.tcp.default 5672 cluster_formation.peer_discovery_backend rabbit_peer_discovery_classic_config cluster_formation.classic_config.nodes.1 rabbitmq1 cluster_formation.classi…

SQL注入(sqli-labs第一關)

sqli-labs第一關 方法一:手工注入 來到第一關,圖上說我們需要一個數字的參數 于是我們先手工注入?id1 and 11 跟?id1 and 12發現頁面沒有報錯 每張截圖上面頁面中有select查詢語句,這是我在第一關的源碼中加上了echo "$sql ";…

SSM【Spring SpringMVC Mybatis】——Mybatis(二)

如果對一些基礎理論感興趣可以看這一期👇 SSM【Spring SpringMVC Mybatis】——Mybatis 目錄 1、Mybatis中參數傳遞問題 1.1 單個普通參數 1.2 多個普通參數 1.3 命名參數 1.4 POJO參數 1.5 Map參數 1.6 Collection|List|Array等參數 2、Mybatis參數傳遞【#與…

STL——stack容器【棧】

stack基本概念: 概念: 是一種先進后出的數據結構,它只有一個出口 因為只有一端可以調用,所以棧不支持遍歷操作 棧的操作: 棧中進入數據稱為:入棧(push) 棧中彈出數據稱為:出棧(pop) 生活中…

C#編程模式之享元模式

創作背景:各位朋友,我們繼續學習C#的編程模式,本文主要介紹享元模式。享元模式是一種結構型設計模式,它主要用于減少創建對象的數量,從而提高程序性能。它通過共享對象的方式來減少內存的使用,特別是系統中…

springCloud服務降級使用到的組件

服務降級在Spring Cloud中通常使用的組件包括斷路器(Circuit Breaker)和降級處理器(Fallback)。以下是它們的概念表述: 斷路器(Circuit Breaker):斷路器是一種設計模式,…

【多客陪玩】陪玩小程序源碼APP+小程序+公眾號開發 -源碼交付,線下可爆改家政,整理師等功能

簡述 隨著電競行業的快速發展,電競陪玩APP正在逐漸成為用戶在休閑娛樂時的首選。為了吸引用戶和提高用戶體驗,電競陪玩APP開發需要定制一些特色功能,并通過合適的盈利模式來獲得收益。本文將為您介紹電競陪玩APP開發需要定制的特色功能以及常…

M21121G-11

M21121專為當今要求苛刻的電信、數據通信和廣播視頻應用而設計,是一款低功耗、高速34x34交叉點交換機,具有輸入均衡和內置系統測試功能。在所有通道運行的情況下,該設備的功耗通常低至3.5瓦。PowerScaler?功能提供動態可擴展的開關設置&…

升壓、降壓、升降壓LED恒流驅動器

AP9139 是一款外圍電路簡單的調光無頻閃降壓 LED 恒流驅動器,支持升壓、降壓、及升降壓拓撲的 應用,適用于6.5-80V輸入電壓范圍的LED恒流照明領 域,調光深度深,低輝負載調整率和一致性好。 AP9139芯片的輸出電通過ISENSEN對ISENEP…

React 之 lazy(延遲加載)(十六)

lazy 能夠讓你在組件第一次被渲染之前延遲加載組件的代碼。 在組件外部調用 lazy,以聲明一個懶加載的 React 組件: import { lazy } from react;const MarkdownPreview lazy(() > import(./MarkdownPreview.js)); 配合 Suspense 實現懶加載組件 //App.js imp…

深入學習指針3

目錄 前言 1.二級指針 2.指針數組 3.指針數組模擬二維數組 前言 Hello,小伙伴們我又來了,上期我們講到了數組名的理解,指針與數組的關系等知識,那今天我們就繼續深入到學習指針域數組的練聯系,如果喜歡作者菌生產的內容還望不…

Python GraphQL服務器實現庫之tartiflette使用詳解

概要 Tartiflette是一個為Python編寫的GraphQL服務器實現,它建立在現代異步編程庫如asyncio之上,提供了高性能的GraphQL執行環境。Tartiflette專注于提供最佳的開發者體驗,支持最新的GraphQL特性。 安裝 安裝Tartiflette相對簡單,但需要依賴于一些系統級的庫。 首先,需…