【全文搜索引擎】Elasticsearch相关介绍与linux系统安装
生活随笔
收集整理的這篇文章主要介紹了
【全文搜索引擎】Elasticsearch相关介绍与linux系统安装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概念
Elasticsearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java語言開發的,并作為Apache許可條款下的開放源碼發布,是一種流行的企業級搜索引擎。Elasticsearch用于云計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。官方客戶端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和許多其他語言中都是可用的。根據DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業搜索引擎,其次是Apache Solr,也是基于Lucene。
相關的概念
- Lucene:由Java語言編寫的一套實現全文檢索的開源引擎工具包,屬于Apache公司
- 全文檢索:先創建索引庫,再根據索引庫進行搜索的過程
- 索引庫:存儲索引的數據庫 — 數據于數據庫
- 倒排索引:先對文檔進行分詞,形成詞條與文檔ID及詞條與文檔ID的對應關系,再通過詞條查詢到文檔的過程
與數據庫進行對比
MySQL數據庫
- 如果使用模糊查詢,左邊有通配符,不會走索引,會全表掃描,性能低
- 查詢功能弱,沒有分詞,如果以”華為手機“作為條件,查詢不到數據“華為5G手機”
- 有事務性,有外鍵
- 負責存儲數據
ElasticSearch
- 搜索性能高,功能強,可以分詞
- 沒有事務性,沒有外鍵
- 負責搜索數據
結論
- MySQL有事務性,而ElasticSearch沒有事務性,所以刪了的數據是無法恢復的。
- ElasticSearch沒有物理外鍵這個特性,,如果數據強一致性要求比較高,還是建議慎用
- ElasticSearch和MySql分工不同,MySQL負責存儲數據,ElasticSearch負責搜索數據
ElasticSearch安裝
windows安裝
百度百科有個以windows操作系統和ES0.19.7版本為例的安裝步驟,可以參考
linux系統安裝
上傳ElasticSearch安裝包
alt+p # 打開sftp窗口 # 上傳es安裝包 put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz執行解壓操作
# 將elasticsearch-7.4.0-linux-x86_64.tar.gz解壓到opt文件夾下. -C 大寫tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt創建普通用戶
因為安全問題,Elasticsearch 不允許root用戶直接運行,所以要創建新用戶,在root用戶中創建新用戶,執行如下命令: useradd wanyuan # 新增wanyuan用戶 passwd wanyuan # 為wanyuan用戶設置密碼為新用戶授權
# 將 /opt/elasticsearch-7.4.0文件夾授權給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:節點名,elasticsearch會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理network.host:設置為0.0.0.0允許外網訪問http.port:Elasticsearch的http訪問端口cluster.initial_master_nodes:初始化新的集群時需要此配置來選舉master修改配置文件
# 新創建的wanyuan用戶最大可創建文件數太小,最大虛擬內存太小, # 切換到root用戶,編輯下列配置文件, 添加類似如下內容 # 切換到root用戶 su root #1. ===最大可創建文件數太小======= vim /etc/security/limits.conf # 在文件末尾中增加下面內容 wanyuan soft nofile 65536 wanyuan hard nofile 65536 # ===== vim /etc/security/limits.d/20-nproc.conf # 在文件末尾中增加下面內容 wanyuan soft nofile 65536 wanyuan hard nofile 65536 * hard nproc 4096 # 注:* 代表Linux所有用戶名稱 #2. ===最大虛擬內存太小======= vim /etc/sysctl.conf # 在文件中增加下面內容 vm.max_map_count=655360 # 重新加載,輸入下面命令: sysctl -p啟動elasticsearch
su wanyuan # 切換到wanyuan用戶啟動 cd /opt/elasticsearch-7.4.0/bin ./elasticsearch #啟動訪問elasticsearch
在訪問elasticsearch前,請確保防火墻是關閉的,執行命令:
#暫時關閉防火墻 systemctl stop firewalld# 或者#永久設置防火墻狀態 systemctl enable firewalld.service #打開防火墻永久性生效,重啟后不會復原 systemctl disable firewalld.service #關閉防火墻,永久性生效,重啟后不會復原瀏覽器輸入http://192.168.149.135:9200/,如下圖
此時elasticsearch已成功啟動:
核心概念
- 索引(index):ElasticSearch存儲數據的地方,可以理解成關系型數據庫中的數據庫概念。
- 映射(mapping):mapping定義了每個字段的類型、字段所使用的分詞器等。相當于關系型數據庫中的表結構。
- 文檔(document):Elasticsearch中的最小數據單元,常以json格式顯示。一個document相當于關系型數據庫中的一行數據。
- 倒排索引:一個倒排索引由文檔中所有不重復詞的列表構成,對于其中每個詞,對應一個包含它的文檔id列表。
- 類型(type):
- 一種type就像一類表。如用戶表、角色表等。
- ES 5.x中一個index可以有多種type。
- ES 6.x中一個index只能有一種type。
- ES 7.x以后,將逐步移除type這個概念,現在的操作已經不再使用,默認_doc
RESTful風格
- REST(Representational State Transfer),表述性狀態轉移,是一組架構約束條件和原則。滿足這些約束條件和原則的應用程序或設計就是RESTful。就是一種定義接口的規范。
- 基于HTTP。
- 可以使用XML格式定義或JSON格式定義。
- 每一個URI代表1種資源。
- 客戶端使用GET、POST、PUT、DELETE 4個表示操作方式的動詞對服務端資源進行操作:
- GET:用來獲取資源
- POST:用來新建資源(也可以用于更新資源)
- PUT:用來更新資源
- DELETE:用來刪除資源
總結
以上是生活随笔為你收集整理的【全文搜索引擎】Elasticsearch相关介绍与linux系统安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【源码解析】ArrayList源码解析
- 下一篇: 【全文搜索引擎】Elasticsearc