日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【全文搜索引擎】Elasticsearch相关介绍与linux系统安装

發(fā)布時間:2025/5/22 linux 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【全文搜索引擎】Elasticsearch相关介绍与linux系统安装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概念

Elasticsearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java語言開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎。Elasticsearch用于云計算中,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。官方客戶端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和許多其他語言中都是可用的。根據(jù)DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業(yè)搜索引擎,其次是Apache Solr,也是基于Lucene。

相關(guān)的概念

  • Lucene:由Java語言編寫的一套實現(xiàn)全文檢索的開源引擎工具包,屬于Apache公司
  • 全文檢索:先創(chuàng)建索引庫,再根據(jù)索引庫進行搜索的過程
  • 索引庫:存儲索引的數(shù)據(jù)庫 — 數(shù)據(jù)于數(shù)據(jù)庫
  • 倒排索引:先對文檔進行分詞,形成詞條與文檔ID及詞條與文檔ID的對應(yīng)關(guān)系,再通過詞條查詢到文檔的過程

與數(shù)據(jù)庫進行對比

MySQL數(shù)據(jù)庫
  • 如果使用模糊查詢,左邊有通配符,不會走索引,會全表掃描,性能低
  • 查詢功能弱,沒有分詞,如果以”華為手機“作為條件,查詢不到數(shù)據(jù)“華為5G手機”
  • 有事務(wù)性,有外鍵
  • 負責存儲數(shù)據(jù)
ElasticSearch
  • 搜索性能高,功能強,可以分詞
  • 沒有事務(wù)性,沒有外鍵
  • 負責搜索數(shù)據(jù)
結(jié)論
  • MySQL有事務(wù)性,而ElasticSearch沒有事務(wù)性,所以刪了的數(shù)據(jù)是無法恢復(fù)的。
  • ElasticSearch沒有物理外鍵這個特性,,如果數(shù)據(jù)強一致性要求比較高,還是建議慎用
  • ElasticSearch和MySql分工不同,MySQL負責存儲數(shù)據(jù),ElasticSearch負責搜索數(shù)據(jù)

ElasticSearch安裝

windows安裝

百度百科有個以windows操作系統(tǒng)和ES0.19.7版本為例的安裝步驟,可以參考

linux系統(tǒng)安裝

上傳ElasticSearch安裝包

alt+p # 打開sftp窗口 # 上傳es安裝包 put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz

執(zhí)行解壓操作

# 將elasticsearch-7.4.0-linux-x86_64.tar.gz解壓到opt文件夾下. -C 大寫tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt

創(chuàng)建普通用戶

因為安全問題,Elasticsearch 不允許root用戶直接運行,所以要創(chuàng)建新用戶,在root用戶中創(chuàng)建新用戶,執(zhí)行如下命令: useradd wanyuan # 新增wanyuan用戶 passwd wanyuan # 為wanyuan用戶設(shè)置密碼

為新用戶授權(quán)

# 將 /opt/elasticsearch-7.4.0文件夾授權(quán)給wanyuan用戶 chown -R wanyuan:wanyuan /opt/elasticsearch-7.4.0 #文件夾所有者

修改elasticsearch.yml文件

vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml # ======================== Elasticsearch Configuration ========================= cluster.name: my-application node.name: node-1 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"] cluster.name:配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱node.name:節(jié)點名,elasticsearch會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理network.host:設(shè)置為0.0.0.0允許外網(wǎng)訪問http.port:Elasticsearch的http訪問端口cluster.initial_master_nodes:初始化新的集群時需要此配置來選舉master

修改配置文件

# 新創(chuàng)建的wanyuan用戶最大可創(chuàng)建文件數(shù)太小,最大虛擬內(nèi)存太小, # 切換到root用戶,編輯下列配置文件, 添加類似如下內(nèi)容 # 切換到root用戶 su root #1. ===最大可創(chuàng)建文件數(shù)太小======= vim /etc/security/limits.conf # 在文件末尾中增加下面內(nèi)容 wanyuan soft nofile 65536 wanyuan hard nofile 65536 # ===== vim /etc/security/limits.d/20-nproc.conf # 在文件末尾中增加下面內(nèi)容 wanyuan soft nofile 65536 wanyuan hard nofile 65536 * hard nproc 4096 # 注:* 代表Linux所有用戶名稱 #2. ===最大虛擬內(nèi)存太小======= vim /etc/sysctl.conf # 在文件中增加下面內(nèi)容 vm.max_map_count=655360 # 重新加載,輸入下面命令: sysctl -p

啟動elasticsearch

su wanyuan # 切換到wanyuan用戶啟動 cd /opt/elasticsearch-7.4.0/bin ./elasticsearch #啟動

訪問elasticsearch

在訪問elasticsearch前,請確保防火墻是關(guān)閉的,執(zhí)行命令:

#暫時關(guān)閉防火墻 systemctl stop firewalld# 或者#永久設(shè)置防火墻狀態(tài) systemctl enable firewalld.service #打開防火墻永久性生效,重啟后不會復(fù)原 systemctl disable firewalld.service #關(guān)閉防火墻,永久性生效,重啟后不會復(fù)原

瀏覽器輸入http://192.168.149.135:9200/,如下圖

此時elasticsearch已成功啟動:

重點幾個關(guān)注下即可:number" : "7.4.0" 表示elasticsearch版本lucene_version" : "8.2.0" 表示lucene版本name : 默認啟動的時候指定了 ES 實例名稱cluster_name : 默認名為 elasticsearch

核心概念

  • 索引(index):ElasticSearch存儲數(shù)據(jù)的地方,可以理解成關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)庫概念。
  • 映射(mapping):mapping定義了每個字段的類型、字段所使用的分詞器等。相當于關(guān)系型數(shù)據(jù)庫中的表結(jié)構(gòu)。
  • 文檔(document):Elasticsearch中的最小數(shù)據(jù)單元,常以json格式顯示。一個document相當于關(guān)系型數(shù)據(jù)庫中的一行數(shù)據(jù)。
  • 倒排索引:一個倒排索引由文檔中所有不重復(fù)詞的列表構(gòu)成,對于其中每個詞,對應(yīng)一個包含它的文檔id列表。
  • 類型(type):
    • 一種type就像一類表。如用戶表、角色表等。
    • ES 5.x中一個index可以有多種type。
    • ES 6.x中一個index只能有一種type。
    • ES 7.x以后,將逐步移除type這個概念,現(xiàn)在的操作已經(jīng)不再使用,默認_doc

RESTful風格

  • REST(Representational State Transfer),表述性狀態(tài)轉(zhuǎn)移,是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計就是RESTful。就是一種定義接口的規(guī)范。
  • 基于HTTP。
  • 可以使用XML格式定義或JSON格式定義。
  • 每一個URI代表1種資源。
  • 客戶端使用GET、POST、PUT、DELETE 4個表示操作方式的動詞對服務(wù)端資源進行操作:
    • GET:用來獲取資源
    • POST:用來新建資源(也可以用于更新資源)
    • PUT:用來更新資源
    • DELETE:用來刪除資源

總結(jié)

以上是生活随笔為你收集整理的【全文搜索引擎】Elasticsearch相关介绍与linux系统安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。