Elasticsearch詳細介紹

B站對應視頻:

Elasticsearch01-01.為什么學習elasticsearch_嗶哩嗶哩_bilibili

大多數日常項目,搜索肯定是訪問頻率最高的頁面之一。目前搜索功能是基于數據庫的模糊搜索來實現的,存在很多問題。

首先,查詢效率較低。

由于數據庫模糊查詢不走索引,在數據量較大的時候,查詢性能很差。

改為基于搜索引擎后速度會有顯著提升。

需要注意的是,數據庫模糊查詢隨著表數據量的增多,查詢性能的下降會非常明顯,而搜索引擎的性能則不會隨著數據增多而下降太多。

其次,功能單一

數據庫的模糊搜索功能單一,匹配條件非常苛刻,必須恰好包含用戶搜索的關鍵字。而在搜索引擎中,用戶輸入出現個別錯字,或者用拼音搜索、同義詞搜索都能正確匹配到數據。

綜上,在面臨海量數據的搜索,或者有一些復雜搜索需求的時候,推薦使用專門的搜索引擎來實現搜索功能。

目前全球的搜索引擎技術排名如下:

排名第一的就是我們今天要學習的elasticsearch.

elasticsearch是一款非常強大的開源搜索引擎,支持的功能非常多,例如:

代碼搜索

商品搜索

解決方案搜索

地圖搜索

通過今天的學習大家要達成下列學習目標:

  • 理解倒排索引原理

  • 會使用IK分詞器

  • 理解索引庫Mapping映射的屬性含義

  • 能創建索引庫及映射

  • 能實現文檔的CRUD

1.初識elasticsearch

Elasticsearch的官方網站如下:

https://www.elastic.co/cn/elasticsearch/

本章我們一起來初步了解一下Elasticsearch的基本原理和一些基礎概念。

1.1.認識和安裝

Elasticsearch是由elastic公司開發的一套搜索引擎技術,它是elastic技術棧中的一部分。完整的技術棧包括:

  • Elasticsearch:用于數據存儲、計算和搜索

  • Logstash/Beats:用于數據收集

  • Kibana:用于數據可視化

整套技術棧被稱為ELK,經常用來做日志收集、系統監控和狀態分析等等:

整套技術棧的核心就是用來存儲搜索計算的Elasticsearch,因此我們接下來學習的核心也是Elasticsearch。

我們要安裝的內容包含2部分:

  • elasticsearch:存儲、搜索和運算

  • kibana:圖形化展示

首先Elasticsearch不用多說,是提供核心的數據存儲、搜索、分析功能的。

然后是Kibana,Elasticsearch對外提供的是Restful風格的API,任何操作都可以通過發送http請求來完成。不過http請求的方式、路徑、還有請求參數的格式都有嚴格的規范。這些規范我們肯定記不住,因此我們要借助于Kibana這個服務。

Kibana是elastic公司提供的用于操作Elasticsearch的可視化控制臺。它的功能非常強大,包括:

  • 對Elasticsearch數據的搜索、展示

  • 對Elasticsearch數據的統計、聚合,并形成圖形化報表、圖形

  • 對Elasticsearch的集群狀態監控

  • 它還提供了一個開發控制臺(DevTools),在其中對Elasticsearch的Restful的API接口提供了語法提示

1.1.1.安裝elasticsearch

通過下面的Docker命令即可安裝單機版本的elasticsearch:

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network hm-net \-p 9200:9200 \-p 9300:9300 \elasticsearch:7.12.1

注意,這里我們采用的是elasticsearch的7.12.1版本,由于8以上版本的JavaAPI變化很大,在企業中應用并不廣泛,企業中應用較多的還是8以下的版本。

如果拉取鏡像困難,可以直接使用這個鏡像tar包(所有資料在文章末尾可以一次性提取):

安裝完成后,訪問9200端口,即可看到響應的Elasticsearch服務的基本信息:

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

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

相關文章

Java面試題:三個線程交替打印ABC如何實現?

目錄 方法一:使用synchronized和wait/notify方法二:使用CompletableFuture實現 方法一:使用synchronized和wait/notify package com.demo;import java.util.concurrent.CompletableFuture;public class PrintABC {// 當前狀態private static…

數據結構 Java DS——鏈表部分經典題目 (1)

前言 筆者計劃在暑假啃完JavaDS,Mysql的內容當然也會繼續更 這次給讀者們分享的是鏈表的幾個比較典型的題目,關于如何手搓一個鏈表,筆者還在籌劃中, 畢竟鏈表的種類也有那么多,但是在下面的題目中,只有單向鏈表 題目一 : 反轉鏈表 206. 反轉鏈表 - 力扣(LeetCode…

什么是 VueQuill(前端的富文本編輯器)?

什么是 VueQuill? 1. 簡介 VueQuill 是 Vue.js 的一個富文本編輯器插件,它基于 Quill 編輯器構建,提供了簡潔且功能強大的富文本編輯功能。Quill 是一個現代化的富文本編輯器,提供豐富的文本編輯能力,支持多種格式和…

paddlenlp cpu windows 下測試gpt

paddlenlp 安裝python3.11版本 conda create -n python311 python3.11 激活python conda activate python311 安裝paddlepaddle conda install paddlepaddle3.0.0b0 -c paddle pip install paddlenlp3.0.0b0 -U -i https://pypi.tuna.tsinghua.edu.cn/simple windows下…

RockYou2024 發布史上最大密碼憑證

參與 CTF 的每個人都至少使用過一次臭名昭著的rockyou.txt單詞表,主要是為了執行密碼破解活動。 該文件是一份包含1400 萬個唯一密碼的列表。 源自 2009 年的 RockYou 黑客攻擊,創造了計算機安全歷史。 多年來,“rockyou 系列”不斷發展。…

爬蟲怎么實現抓取的

1.4爬蟲工程師常用的庫通過圖1-3我們了解到,爬蟲程序的完整鏈條包括整理需求、分析目標、發出網絡請求、文本解析、數據入庫和數據出庫。其中與代碼緊密相關的有:發出網絡請求、文本解析、數據入庫和數據出庫,接下來我們將學習不同階段中爬蟲…

C++OCR API減輕人們文字錄入的負擔

曾幾何時,許多大企業會設立文字錄入專員的崗位。相信有不少人第一份實習工作就是錄入資料,文檔、發票、證件等形形色色的文件堆積如山,日積月累的敲擊鍵盤,一張一張的錄入電腦系統。這種工作是枯燥的,可以練就文字錄入…

實驗01 黑盒測試方法(等價類劃分、邊界值分析)

一 實驗目的: 1、理解黑盒測試的定義; 2、掌握等價類劃分法; 3、掌握邊界值分析法。 二 實驗環境 1、Windows操作系統計算機; 三 實驗準備 1、理解黑盒測試的定義; 2、等價類劃分法原則; 3、邊界值分…

Java反射與Fastjson的危險反序列化

什么是Java反射? 在前文中,我們有一行代碼 Computer macBookPro JSON.parseObject(preReceive,Computer.class); 這行代碼是什么意思呢?看起來好像就是我們聲明了一個名為 macBookPro 的 Computer 類,它由 fastjson 的 parseObje…

Java入門-Day7-面對對象基礎-構造器

(1)特點 創建對象時,對象會去調用構造器 (2)應用場景 創建對象時,同時完成對對象的成員變量(屬性),的初始化 (3)注意事項 //Sutdent構造器 注…

Java 幼兒園(20240709)多來源列表映射多實現類

1、功能場景 對接多個外部廠商,比如多個銀行的賬單獲取,需要根據銀行信息執行對應的實現類。 2、功能代碼 (1)YAML配置來源列表 bank-source: bank_001, bank_002, bank_003 (2)外部來源枚舉 public …

《夢醒蝶飛:釋放Excel函數與公式的力量》10.2 COMPLEX函數

第二節 10.2 COMPLEX函數 10.2.1函數簡介 COMPLEX函數是Excel中的一個工程函數,用于將實部和虛部組合成一個復數。復數廣泛應用于工程、電氣、物理等領域,COMPLEX函數提供了方便的復數表示和計算方法。 10.2.2語法: COMPLEX(real_num, i_…

flex 填滿剩余空間

常見的flex屬性值: 1.flex:1,也就是flex-grow:1,也就是上面說的自動放大填充滿剩余空間,若有其他子盒子設置flex,則平分。 2.flex:0 0 auto,等同于flex:none,子元素的長度決定它的長度,當整體空間不足時,它也不會縮小&…

swift獲取app網絡和本地網絡權限

請求藍牙權限: //藍牙if #available(iOS 13.1, *) {let autostate CBManager.authorizationif(autostate .notDetermined){print("")self.manager CBCentralManager(delegate: nil, queue: DispatchQueue.main,options: [CBCentralManagerOptionShowPo…

JavaScript中的LHS和RHS

LHS和RHS之前我們先來回憶一下最簡單的賦值操作! var test100; console.log(test); 以上代碼的意思簡單我們理解為把右邊的值賦值給左邊的test變量,然后輸出打印結果。 可是我們要是深入理解你就會發現在這個過程當中,還發生了一些其他的事情 而這些事情就是今天…

C語言 printf函數緩沖機制

printf不立即打印到stdout的原因 printf函數使用了緩沖機制。當我們調用printf時,輸出通常不會立即顯示在屏幕上,而是先存儲在一個緩沖區中。這是為了提高I/O操作的效率。 緩存數據輸出的原理 stdio庫維護了一個緩沖區。當緩沖區滿了,或者在特定條件下,緩沖區的內容會被刷新…

前端如何讓網頁頁面完美適配不同大小和分辨率屏幕

推薦使用postcss插件,它會自動將項目所有的px單位統一轉換為vw等單位(包括npm安裝的第三方組件),從而實現適配,具體配置規則可參考官網或npm網站介紹。 另外對于大屏的適配,需要縮放網頁,可使用…

歐姆龍安全PLC及周邊產品要點指南

電氣安全、自動化設備作業安全,向來是非常非常之重要的!越來越多的客戶在規劃新產線、改造既有產線的過程中,明確要求設計方和施工方將安全考慮進整體方案中進行考慮和報價!作為一名自動化電氣工程師,尤其是高級工程師…

養寵經驗分享貓咪經常掉毛怎么辦?最值得買的寵物空氣凈化器分享

身為資深鏟屎官,深知若偷懶不打掃,家中便成貓毛紛飛、異味繚繞的戰場,尤其換季時,更是雪上加霜。長期處于這樣的環境,不僅我們頭疼眼澀、咳嗽氣喘,對老人、小孩、孕婦等敏感群體更是健康大敵。 幸運的是&a…

Vagrant配合VirtualBox搭建虛擬機

目錄 前言一、軟件下載及安裝1.下載2.安裝擴展: 二、創建一個虛擬機1.Vagrant官方鏡像倉庫 三、使用遠程工具連接虛擬機1.修改相關配置文件 四、虛擬機克隆及使用1.通用配置2.簡單搭建一個java環境3.克隆虛擬機1.重命名虛擬機(可選)2.打包指定…