一、ES簡介
1.1 概述
什么是ElasticSearch
ElasticSearch
簡稱ES,是基于Apache Lucene構(gòu)建的開源搜索引擎,是當前最流行的企業(yè)級搜索引擎。Lucene本身就可以被認為迄今為止性能最好的一款開源所搜引擎工具包,但是Lucene的API相對復(fù)雜,需要深厚的搜索理論。很難集成到實際應(yīng)用當中去。ES采用Java語言編寫,提供了簡單易用的Restful API,開發(fā)者可以使用其簡單的Restful API,開發(fā)相關(guān)的搜索功能,從而避免Lucene的復(fù)雜性
ElasticSearch誕生
多年前,一個叫做Shay Banon的剛結(jié)婚不久的失業(yè)開發(fā)者,由于妻子要去倫敦學習廚師,他便跟著也去了。在他找工作的過程中,為了給妻子構(gòu)建一個食譜的搜索引擎,他開始構(gòu)建一個早期版本的Lucene
直接基于Lucene工作會比較困難,所以Shay開始抽象Lucene代碼以便Java程序員可以在應(yīng)用中添加搜索功能。他發(fā)布了他的第一個開源項目,叫做"Compass"
后來Shay找到一份工作,這份工作處在高性能和內(nèi)存數(shù)據(jù)網(wǎng)格的分布式環(huán)境中,因此高性能的、實時的、分布式的搜索引擎也是理所當然需要的。然后他決定重寫Compass庫使其成為一個獨立的服務(wù)叫做Elasticsearch
第一個公開版本出現(xiàn)在2010年2月,在那之后Elasticsearch已經(jīng)成為Github上最受歡迎的項目之一,代碼貢獻者超過300人。一家主營Elasticsearch的公司就此成立,他們一邊提供商業(yè)支持一邊開發(fā)新功能,不過Elasticsearch將永遠開源且對所有人可用
全文檢索
全文檢索
是計算機程序通過掃描文章中的每一個詞、對每一個詞建立一個索引,指明該詞在文章中出現(xiàn)的次數(shù)
和位置
。當用戶查詢時,根據(jù)建立的索引查找,類似于通過字典的檢索字表查字的過程
全文索引(Full-Text Retrieval)以文本作為檢索對象,找出含有指定詞匯的文本。全面、準確和快速是衡量全文檢索系統(tǒng)的關(guān)鍵指標
- 只處理文本、不處理語義
- 搜索時英文不區(qū)分大小寫
- 結(jié)果列表有相關(guān)度排序
1.2 基礎(chǔ)安裝
環(huán)境準備
- centos7.x+
- jdk11+(可以不需要配置jdk,往下看即可)
官方下載地址:https://www.elastic.co/cn/downloads/elasticsearch
查看以前的版本
選擇對應(yīng)的版本號和引擎,點擊Download
安裝Linux版本的引擎包
下載好后,使用 xftp將壓縮包上傳到Linux目錄下
將壓縮包進行解壓
tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz
查看elasticsearch自帶的java版本
解決自帶jdk版本過低問題
- 這個錯誤是系統(tǒng)jdk版本與es要求jdk版本不一致,es默認需要jdk11以上的版本,當前系統(tǒng)使用jdk8,需要從新安裝jdk11才行
- 解決方案
方案一: 安裝jdk11+,并配置環(huán)境變量
方案二: ES包中目錄就是es需要的jdk,只需要將這個目錄配置到ES_JAVA_HOME環(huán)境變量即可
這里我們使用方案二解決
# 配置環(huán)境變量,在/etc/profile目錄文件下,文件底部添加如下
vim /etc/profile
# elasticsearch自帶jdk的路徑
ES_JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.14.0/jdk
export ES_JAVA_HOME
# 重新加載環(huán)境
source /etc/profile
【注意】es默認是不允許root用戶去啟動elasticsearch,所以需要給普通用戶添加權(quán)限
運行成功的標志
1.3 訪問測試
本地訪問
使用外部端口訪問,默認是在窗口運行,并且端口號是9200
# 訪問端口
curl http://localhost:9200
# 添加參數(shù)-d后臺啟動
./elasticsearch -d
遠程訪問
# 默認ES無法使用主機ip進行遠程連接,需要開啟遠程連接權(quán)限
- 修改ES安裝包中config/elasticsearch.yml配置文件
vim elasticsearch.yml
修改完之后,重啟elasticsearch報錯
- 最大虛擬內(nèi)存太低
- 默認是生產(chǎn)模式啟動(集群的方式啟動)
解決問題一(用戶的軟硬限制)
### 找到文件 /etc/security/limits.conf,在文件的最后追加如下配置:
# 軟硬問題(修改這里即可)
[totoro為用戶名稱,作用域]
totoro soft nofile 65536
totoro hard nofile 65536
# 最大線程數(shù)問題(無需修改,有報錯添加即可)
totoro soft nofile 65535
totoro hard nofile 65537
vim /etc/security/limits.conf
解決問題二(內(nèi)存太低)
### 以root身份進行修改
# 在/etc/sysctl.conf目錄文件下,修改以下參數(shù)
vm.max_map_count=262144 # centos7 系統(tǒng)
# 保存后,執(zhí)行以下命令即可生效
sysctl -p
解決問題三(集群修改為單機)
### 編輯elasticsearch.yml文件
cluster.initial_master_nodes: ["node-1"]
# 執(zhí)行以下命令即可生效
sysctl -p
vim elasticsearch.yml
# 通過:set nu 顯示行數(shù),位置定位在74行,如下圖
重新啟動elasticsearch,并開啟防火墻端口號,通過外部訪問端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
systemctl restart firewalld.service # 重啟防火墻命令
1.4 Docker安裝
《docker安裝教程》
# 運行docker命令
systemct start docker
### 1.拉取elasticsearch鏡像
docker pull elasticsearch:7.14.0
### 2.運行ES
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.0
-d 后臺運行
-p 本地端口與docker容器中的端口映射
-e 指定單機模式環(huán)境運行
### 3.訪問ES
http://192.168.159.100:9200
### 根據(jù)容器id查看日志輸出
docker logs -f 1343ec1236e7
主機訪問測試
http://ip:9200/
文章來源:http://www.zghlxwxcb.cn/news/detail-719379.html
下一篇文章《ElasticSearch - Kibana》文章來源地址http://www.zghlxwxcb.cn/news/detail-719379.html
到了這里,關(guān)于ElasticSearch(一)【簡介】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!